Node.js向MySQL插入数据报ER_PARSE_ERROR语法错误如何解决?
问题原因及修复方案
核心错误(导致1064 SQL语法报错)
你的插入接口中SQL语句存在多余的等号,原代码:
connection.query('INSERT INTO beers SET = ?',params,(err,rows)=>{
MySQL INSERT ... SET 语法中,SET 关键字后不需要额外加等号,mysql驱动会自动把传入的对象参数解析为字段名=值的格式,你多写的等号会导致生成的SQL变成INSERT INTO beers SET = name = 'african',...,和报错提示的语法异常位置完全对应。
直接删除SET后的等号即可修复:
connection.query('INSERT INTO beers SET ?',params,(err,rows)=>{
次要问题(不影响插入功能,但会导致启动日志打印异常)
服务启动的日志代码中,模板插值需要用反引号包裹字符串,原代码用了单引号,修改为:
app.listen(port,()=>console.log(`listen on port ${port}`))
修改完成后重启服务,只要POST请求体的字段和beers表字段匹配,即可正常完成插入操作。
内容的提问来源于stack exchange,提问作者user11466949
相关产品推荐
相关产品推荐

