“sqlMessage”:“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册以获取正确的语法以使用 [重复]

Posted

技术标签:

【中文标题】“sqlMessage”:“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册以获取正确的语法以使用 [重复]【英文标题】:"sqlMessage": "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use [duplicate] 【发布时间】:2020-06-30 02:49:03 【问题描述】:
    "code": "ER_PARSE_ERROR",
    "errno": 1064,
    "sqlMessage": "You have an error in your SQL syntax; check the manual that corresponds to your mysql server version for the right syntax to use near 'INSERT INTO users(email, first_name, last_name, password, role_id) values(\"swsws' at line 1",
    "sqlState": "42000",
    "index": 0,

我在 NodeJs 中遇到了这个错误,我尝试对这个查询进行多次插入。查询工作是 phpmyadmin 所以我不知道问题出在哪里。如果可以,请帮助我,我正在尝试修复它几个小时。

             let q1= `BEGIN`,
             q3= `SET @last_id_in_users = LAST_INSERT_ID()`,
             q4= `INSERT INTO sale_targets (user_id, monday, tuesday, wednesday, thursday, friday, saturday, sunday) VALUES(LAST_INSERT_ID(), '0', '0','0','0','0','0','0')`,
             q5= `INSERT INTO close_ratio (user_id, monday, tuesday, wednesday, thursday, friday, saturday, sunday) VALUES(@last_id_in_users,'0', '0','0','0','0','0','0')`,
             q6= `INSERT INTO lead_targets (user_id, monday, tuesday, wednesday, thursday, friday, saturday, sunday) VALUES(@last_id_in_users,'0', '0','0','0','0','0','0')`,
             q7= `COMMIT`
             let valuesStr = `("$rBody.email", "$rBody.firstName", "$rBody.lastName", "$hash", $roleId)`,
             q2 = `INSERT INTO users(email, first_name, last_name, password, role_id) values$valuesStr`,
             q = `$q1; $q2; $q3; $q4; $q5; $q6; $q7;`;

【问题讨论】:

你能记录 vars rBody.xxx 和 valueStr 和 q2 和 q,然后发布吗?也许是转义字符串问题?尝试将 rBody.email 设置为“XXX”,并将其他 var firstname、lastName、hash 和 roleId 设置为 1。 【参考方案1】:

一次查询一个。你不能用';'连接它们

【讨论】:

以上是关于“sqlMessage”:“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册以获取正确的语法以使用 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

参数化查询中的 JavaScript 错误

NodeJS MySQL Client 不支持认证协议

在存储过程中检索多于一行

如何通过Node从MySQL查询数据