MySQL 中预准备语句的 LIMIT 关键字
此问题解决了使用预准备语句时 LIMIT 子句无法按预期工作的问题使用 MySQL 中的 PDO 库。
在提供的代码中snippet:
<pre class="brush:php;toolbar:false"> $comments = $db->prepare($query); /* where $db is the PDO object */ $comments->execute(array($post, $min, $max));
PDOStatement::execute 方法将参数 $min 和 $max 视为字符串。因此,最终的 SQL 语句变为:
LIMIT '0', '10'
,这会导致语法错误,因为 MySQL 需要 LIMIT 子句的数值。
可能的解决方案:
要解决此问题,请考虑以下事项options:
手动绑定参数:
使用字符串插值:
示例:
$query = sprintf('SELECT id, content, date FROM comment WHERE post = ? ORDER BY date DESC LIMIT %d, %d', $min, $max);
禁用模拟准备:
注意:
这些方法将使您能够正确使用 LIMIT 子句和准备好的语句。
以上是为什么 LIMIT 不能与 MySQL 中的预准备语句一起使用?的详细内容。更多信息请关注PHP中文网其他相关文章!