大家好,我有一个在 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/