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

PDO执行INSERT语句报SQLSTATE[42000]语法错误1064问题求助

问题修复方案

核心错误原因

你的INSERT SQL语句中,字段列表错误使用了单引号包裹字段名,MariaDB/MySQL语法规定:

  • 单引号'仅用于包裹字符串类型的数值
  • 字段名、表名如果需要包裹,只能使用反引号`(键盘ESC键下方的按键),也可以不包裹(只要字段名不是SQL保留关键字)

修正代码

找到userPDO.php中的SQL定义行,替换为以下内容即可:

// 写法1:字段名不加引号(推荐,你的字段名都不是关键字)
$pdoQuery = "INSERT INTO usersprofile (firstname, lastname, birthdate, gender, email, phone, street, housenumber, barangay, city, roles) VALUES (:firstname,:lastname,:birthdate,:gender,:email,:phone,:street,:housenumber,:barangay,:city,:roles)";

// 写法2:字段名用反引号包裹(如果字段名是关键字必须用这种)
$pdoQuery = "INSERT INTO usersprofile (`firstname`, `lastname`, `birthdate`,`gender`,`email`,`phone`,`street`,`housenumber`,`barangay`,`city`,`roles`) VALUES (:firstname,:lastname,:birthdate,:gender,:email,:phone,:street,:housenumber,:barangay,:city,:roles)";

其他注意事项

你代码中接收了username和password两个POST参数,但INSERT语句中没有包含这两个字段,如果你数据表usersprofile中这两个字段设置为非空无默认值,修复语法错误后执行插入仍会报错,需要根据你的业务需求决定是否把这两个字段加入INSERT的字段和值列表中。

内容的提问来源于stack exchange,提问作者woofMaranon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:48:03