mysql 错误:ER解析错误:SQL语法中有错误;

j13ufse2  于 2022-12-28  发布在  Mysql
关注(0)|答案(5)|浏览(123)

我尝试在nodejs中使用mysql插入values。我已经编写了以下代码并通过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解析错误:SQL语法中有错误;查看与MySQL服务器版本对应的手册,了解在"3")附近使用的正确语法
我怎样才能解决这个问题?

ulmd4ohb

ulmd4ohb1#

为什么在列名中使用反引号?列名中不需要反引号。您可以通过对列值使用+操作符来创建动态sql查询,如下所示:

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

envsm3lx2#

代替

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

请试试这个

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

提供的值是字符串

n3h0vuf2

n3h0vuf23#

values当前在SQL查询中的使用方式没有任何意义。
values是什么?它是一个整数还是一个字符串?
不过,您需要在字符串中连接values变量。

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

5n0oy7gb4#

还有一个修正变量values必须给予这样的'" + values + "',这是定义变量最正确的方法,否则你给出这样的" + values + ",你可能会有这样的错误,我的代码是

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

9vw9lbht5#

这是在JavaScript代码中编写SQL查询的简单方法。
试一次
常量查询=插入用户(名字、姓氏)值(“${名字}"、“${姓氏}”)
注意:请将您的完整查询包含在反勾号中。

相关问题