You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 01:36:05