update语句中的mysql语法错误,nodejs(mysql2)模块

qoefvg9y  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(385)

我正在使用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

stingified 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":

68de4m5k

68de4m5k1#

问题是通过使用反引号和单引号来解决的。

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

    var lol = JSON.stringify(self.furniture)
e0uiprwp

e0uiprwp2#

你的查询行部分地说

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

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

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

以下是关于mysql语法错误的一点:该消息显示以mysql不理解的第一个字符开头的错误查询。解决这类问题的一个好方法是使用 console.log() 要输出整个查询字符串,请仔细查看。你通常会发现一些明显的错误。

相关问题