我正在尝试使用mysql在NodeJS中插入
我的代码;
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')'附近使用的正确语法
我该如何解决这个问题呢?
为什么在列名中使用反引号?我们在列名中不需要它。您可以简单地通过对列值使用运算符创建动态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')";
提供的值是字符串
什么是
然而,您需要在字符串中连接values变量。
var sql = "INSERT INTO `activationkeys`(`activationKey`, `productId`) VALUES (" + values + ",'3')";