提问者:小点点

错误:ER_PARSE_ERROR:SQL语法中有错误;


我正在尝试使用mysql在NodeJS中插入。我已经编写了下面的代码,并通过npm安装了MySQL支持,但是由于这个问题,我无法插入到表中。

我的代码;

var mysql = require('mysql');

var values=randomValueHex(8);

var sql = "INSERT INTO `activationkeys`(`activationKey`, `productId`) 
VALUES ( values ,'3')";
con.query(sql, function (err, result) {
if (err) throw err;
console.log("1 record inserted");
});

我在终端上的错误:

错误:ER_PARSE_ERROR:SQL语法中有错误;请查看与MySQL server版本对应的手册,以确定在''3')'附近使用的正确语法

我该如何解决这个问题呢?


共3个答案

匿名用户

为什么在列名中使用反引号?我们在列名中不需要它。您可以简单地通过对列值使用运算符创建动态sql查询,如下所示:

var sql = "INSERT INTO activationkeys (activationKey, productId) VALUES ( " + values + " ,'3')";

匿名用户

而不是

var sql = "INSERT INTO `activationkeys`(`activationKey`, `productId`) 
VALUES ( values ,'3')";

请试试这个

 var sql = "INSERT INTO `activationkeys`(`activationKey`, `productId`) 
    VALUES ( " +  values + " ,'3')";

提供的值是字符串

匿名用户

在SQL查询中的使用方式目前没有任何意义。

什么是?是整数还是字符串?

然而,您需要在字符串中连接values变量。

var sql = "INSERT INTO `activationkeys`(`activationKey`, `productId`) VALUES (" + values + ",'3')";