【发布时间】:2016-03-17 07:37:14
【问题描述】:
我有这个 PDO 语句不更新我的数据库并且不返回任何错误:
// $database = initialized PDO instance
$status = 'processing';
$submission_id = 213;
$sql = "UPDATE `submission`
SET `status`=':status'
WHERE `id`=':submission_id'";
$query = $database->prepare($sql);
$result = $query->execute(array(
':status' => $status,
':submission_id' => $submission_id
));
var_dump($result); // true
var_dump($query->rowCount()); // 0
$database->errorCode(); // 0000
$database->errorInfo(); // [0]=> string(5) "00000" [1]=> NULL [2]=> NULL
如果我从 $sql 中删除参数,它会起作用:
$sql2 = "UPDATE `submission` SET `status`='processing' WHERE `id`='214'";
除了$query->rowCount() 这次返回 1 并更新数据库之外,所有结果都相同。我将相同的 PDO 对象用于其他插入和选择操作,并且效果很好。
为什么第一个参数化查询不起作用?
【问题讨论】:
-
从你的第一个查询占位符中去掉引号!!
-
谢谢大家!起初我没有引号,但遇到了一些其他错误,所以我添加了它们以尝试修复它,删除了其他错误,这就是我到达这里的原因。
标签: php mysql pdo sql-update