【问题标题】:MySQL Syntax error in the update statement, NodeJS(MySQL2) module更新语句中的 MySQL 语法错误,NodeJS(MySQL2) 模块
【发布时间】:2018-10-22 15:19:15
【问题描述】:

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

【问题讨论】:

    标签: mysql arrays node.js


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您的查询行部分说明

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

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

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

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

      【讨论】:

      • 如果可能的话,最好的办法是使用语句。
      • 与问题无关,我无法弄清楚我的查询有什么问题。我试了一下,还是报同样的错误。
      猜你喜欢
      • 1970-01-01
      • 2011-05-03
      • 1970-01-01
      • 2012-10-11
      • 2020-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多