编辑1:这是not about LIMIT,这是关于传递整数。需要传递数字的其他功能是IN
编辑2:我应该使用PDO :: PARAM_INT吗?
当我这样做时:
$query .= ' LIMIT ? , ? ';
$values [] = $offset ;
$values [] = $rows ;
在这一行:
$db->fetchAll ( $query , $values);
而不是执行:
SELECT ....... LIMIT 0 , 10;
尝试执行:
SELECT ....... LIMIT '0' , '10';
导致错误:错误代码:1064。您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以便在' 0' 0附近使用正确的语法。 ,' 10'
注意1.我知道limit in the $params array.有一个选项。
注意2.有一个问题与here
有关注意3.我尝试过:$values [] = intval($offset)
,$values [] = (int)$offset
,甚至是类似的整数:$values [] = 10
答案 0 :(得分:0)
我不喜欢Cake,但是在PDO中你应该使用 intval
和PDO::PARAM_INT
- 它们都不会单独执行。
在我的PDO包装器中,我修复了这个问题,允许第一个代码运行没有错误,但我怀疑你是否愿意为你的框架实现它