执行PHP MySQL UPDATE预编译语句报SQLSTATE[42000] 1064语法错误如何解决?
错误原因
- UPDATE语句语法不符合MySQL规范:
SET后字段赋值必须使用字段名 = 占位符的格式,你当前代码省略了等于号,直接写为字段名:占位符,触发SQL语法报错 - 执行预编译语句时未传入参数数组:PDO的
execute()方法需要接收你传入的关联数组,才能完成占位符和实际值的绑定
修正后的代码
journal.php 中 updateJournal 方法修正
public function updateJournal($array) { $query = "UPDATE journal SET summary = :summary, wentWell = :wentWell, doBetter = :doBetter, ideas = :ideas, mood = :mood, motivation = :motivation, concentration = :concentration, tranquility = :tranquility, physical = :physical WHERE id = :journalId"; $stmt = $this->connection->prepare($query); $stmt->execute($array); }
验证说明
修改后重新请求即可正常执行更新操作,你的参数传递数组格式是正确的,不需要调整。
内容的提问来源于stack exchange,提问作者Sarcanrye
相关产品推荐
相关产品推荐

