【发布时间】:2015-04-10 12:32:11
【问题描述】:
您好,我正在尝试使用 PHP 使用 MySQL PDO 从表中选择一些随机行
$query = $conn->prepare("SELECT * FROM `products` WHERE `cat` = :cat ORDER BY RAND() LIMIT :limit_to");
$query->bindParam(':limit_to', $limit, PDO::PARAM_INT);
$query->bindParam(':cat', $cat, PDO::PARAM_INT);
$stmt = $query->execute();
但是这会引发类似这样的 mysql 语法错误,
"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"
是什么导致了这个错误,为什么?我没有看到任何错误
【问题讨论】:
-
$limit有引号吗?似乎它来自错误消息中2周围的双单引号。也不确定限制中的“2”是这样吗? -
No $limit 没有引号,$limit 来自一个整数 $_REQUEST['limit'] 我也使用 PDO::PARAM_INT 来确保它是整数,所以为什么我收到错误了吗?我也注意到了双引号
-
你能包含一个
var_dump()的变量吗?