mysql - cakephp 和 PDO 限制错误

标签 mysql cakephp pdo

大家好,我有一个在 cakephp 中开发的网站,我在 pdo 中有一个查询,我想在其中插入一个限制值。 我已经尝试过这种模式:

$max_result = 10;
$search = "test";
$product_alias = $this->ProductAlias->query(
'SELECT DISTINCT * 
   FROM product_aliases 
   WHERE product_aliases.alias 
   LIKE :search LIMIT :limit_search'
 ,array('search' => '%'.$search.'%','limit_search' => intval(trim($max_result)))
);

我也尝试过:

...
WHERE product_aliases.alias 
  LIKE :search 
  LIMIT :limit_search'
,array('search' => '%'.$search.'%','limit_search' => intval($max_result)));

...

WHERE product_aliases.alias 
  LIKE :search 
  LIMIT :limit_search'
,array('search' => '%'.$search.'%','limit_search' => $max_result));

但总是返回这个错误: 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行“10”附近使用的正确语法

我已经看到存在绑定(bind),但我不知道如何应用于这种情况。 有什么解决办法吗?

最佳答案

不确定 CakePHP API,但你可以尝试一下:

$product_alias = $this->ProductAlias->prepare('SELECT DISTINCT * 
    FROM product_aliases 
    WHERE product_aliases.alias LIKE :search 
    LIMIT :limit_search');
$product_alias->bindParam( 'search', '%'.$search.'%', PDO::PARAM_STR );
$product_alias->bindParam( 'limit_search', (int) intval(trim($max_result)), PDO::PARAM_INT );
<小时/>

在检查 CakePHP 的文档时,他们也提供了 PDOStatement:http://api.cakephp.org/2.2/class-PDOStatement.html

关于mysql - cakephp 和 PDO 限制错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16134059/

相关文章:

php - 使用 PHP 更新多个字段 (MySQL)

php - 通过 JSON 发送 HTML 代码

Phpmyadmin 和 mysql 显示错误结果

php - PDO。数据库管理器类 - 非对象上的函数 query()

php - 该脚本不会将数据保存到mysql

mysql - 在 cakephp 中使用 AES_ENCRYPT 和 AES_DECRYPT

验证始终触发规则消息

php - 如何在 CakePHP 中执行自定义查询

php - 带有准备好的语句的 PDO bindParam() 不起作用

php - 使用 PHP PDO 更新复选框的数据库值,但不更新所有复选框