此查询有什么问题?
我无法通过这些参数获取此查询!
$offset = 5;
$rowsperpage = 10;
$stmt = $db->prepare("SELECT * FROM table ORDER BY ID DESC LIMIT ?,?");
if ($stmt->execute(array($offset, $rowsperpage))) {
while ($row = $stmt->fetch()) {
echo $row['title'];
}
}
如果我将查询更改为此工作正常,但我需要传递字符串,因为它们是动态的。
$stmt = $db->prepare("SELECT * FROM table ORDER BY ID DESC LIMIT 5,10");
if ($stmt->execute(array($offset, $rowsperpage))) {
while ($row = $stmt->fetch()) {
echo $row['title'];
}
}
答案 0 :(得分:4)
我有一种感觉“懒惰执行”将所有参数都视为字符串,因此将它们用引号括起来。
因此,要么使用bind_param显式绑定您的参数,而不是将数组传递给execute()
或将仿真模式设置为关闭
$db->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );
连接后。
无论如何,您必须先与错误信息联系。
所以,设置这个
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
将向您显示错误消息
答案 1 :(得分:0)
您忘记了bind_param填写空白