我正在使用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":
答案 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)