更新语句中的MySQL语法错误,NodeJS(MySQL2)模块

时间:2018-05-12 10:41:09

标签: mysql arrays node.js

我正在使用Node.JS和mysql2模块。它基本上就像我尝试使用JSON stingified数据更新列时,我收到以下错误:

{ Error: You have an error in your SQL syntax; check the manual that corresponds
 to your MariaDB server version for the right syntax to use near '"1050":1}WHERE
 `user` = ?' at line 1

加强的JSON数据:

{"1050":1}

查询:

var sql = 'UPDATE `users` SET `furniture` = ' + 'concat(furniture,' + JSON.stringify(self.furniture) + ')' + 'WHERE `user` = ?';

self.furniture与其他内容有关,但我可以向您保证self.furniture正在返回JSON数据,因此我得到了mysql语法错误。

sqlMessage: 'You have an error in your SQL syntax; check the manual that 
corresponds to your MariaDB server version for the right syntax to use near \'"1050":

2 个答案:

答案 0 :(得分:0)

您的查询行部分说明

 ...ingify(self.furniture) + ')' + 'WHERE `us...

在闭括号后应该有一个额外的空格。

...ingify(self.furniture) + ') ' + 'WHERE `us...

这里有关于MySQL语法错误的事情:消息显示错误的查询以MySQL不理解的第一个字符开头。解决此类问题的一种好方法是使用console.log()输出整个查询字符串,然后仔细查看。你通常会发现一些明显的错误。

答案 1 :(得分:0)

使用反引号和单引号解决问题。

    var sql = 'UPDATE `users` SET `furniture` = ' + `concat(furniture, '${lol}')` + 'WHERE `user` = ?';

    var lol = JSON.stringify(self.furniture)