使用PHP将数字绑定到PDO查询的LIMIT

时间:2013-06-18 21:10:21

标签: php pdo limit bind

我遇到过PDO的问题,我已经看过,但是提供的不同解决方案对我不起作用。绑定数字时设置SQL查询的LIMIT。

这是我得到的错误:

Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2'' at line 1 in ...

代码:

$remaining = 3 - $countRows;
$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
$result4 = $con->prepare("SELECT  * FROM  item_descr WHERE id_item != ? LIMIT ?");
$result4->execute(array($itemId, intval($remaining)));

2 个答案:

答案 0 :(得分:2)

$dbh->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );

添加此行并删除intval(是解决方案,如下所示:

Answer to a similar question

答案 1 :(得分:0)

为什么不这样做:

SELECT  * FROM  item_descr WHERE id_item != :id LIMIT :limit

$result->bindParam(':id', $itemID, PDO::PARAM_INT);
$result->bindParam(':limit', $remainint, PDO::PARAM_INT);

使用您当前的代码,您不是真正的绑定参数。