Php 为什么在这个Mysql查询中不使用这些参数?
这个查询有什么问题 我无法让此查询传递这些参数Php 为什么在这个Mysql查询中不使用这些参数?,php,mysql,Php,Mysql,这个查询有什么问题 我无法让此查询传递这些参数 $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']; }
$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'];
}
}
我有一种感觉,延迟执行将所有参数都视为字符串,因此将它们括在引号中 因此,要么显式绑定参数,使用bind_param而不是将数组传递到execute 或将仿真模式设置为关闭
$db->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );
就在连接之后
无论如何,您必须首先与错误消息取得联系。
那么,设置这个
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
将向您显示错误消息我感觉延迟执行将所有参数视为字符串,因此将它们括在引号中 因此,要么显式绑定参数,使用bind_param而不是将数组传递到execute 或将仿真模式设置为关闭
$db->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );
就在连接之后
无论如何,您必须首先与错误消息取得联系。
那么,设置这个
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
将向您显示错误消息您忘记了填写空格您忘记了填写空格它给您带来了什么错误?没有给出错误。什么也没出现!如果我替换?,?在类似4,10的情况下,会显示帖子。您的表被称为table?我的表被称为其他名称,为了便于阅读,我将其重命名。它给您带来了什么错误?没有给出错误。什么也没出现!如果我替换?,?在类似4,10的情况下,会显示POST。您的表被称为table?我的表被称为其他名称,为了便于阅读,我对其进行了重命名。无需-参数是从传递到->执行调用的数组中填充的。无需-参数是从传递到->执行调用的数组中填充的。