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

时间:2018-03-20 13:44:37

标签: javascript mysql node.js npm

我正在尝试在nodejs中使用mysql插入values。我编写了以下代码并通过npm安装了MySQL支持,但由于这个问题,我可以将INSERT插入到表中。

我的代码;

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服务器版本对应的手册,以便在''3'''

附近使用正确的语法

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:1)

而不是

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

请试试这个

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

提供的值是字符串

答案 1 :(得分:1)

为什么使用后引用作为列名?我们在列名中不需要它。您可以使用var sql = "INSERT INTO activationkeys (activationKey, productId) VALUES ( " + values + " ,'3')"; 运算符在列值上创建动态SQL查询,如下所示:

develop

答案 2 :(得分:0)

import sys import os from PyQt5.QtWidgets import * class ErrorWindow(QMessageBox): def __init__(self): super().__init__() self.setWindowTitle("Application Crashed") message = ("Fatal error occurred and application was terminated.\n\n" "Crash log was created at:\n" + os.getcwd() + "\crash.log.\n\n" "Please send log to ***@***.com") self.setText(message) self.setIcon(QMessageBox.Critical) self.show() def main(): app = QApplication(sys.argv) ex = ErrorWindow() sys.exit(app.exec_()) main() 目前没有任何方式在SQL查询中使用它。

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

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

values

答案 3 :(得分:0)

另外一个更正values变量必须像'" + values + "'这样给出。这是定义为变量的最正确方法。否则,您提供" + values + "这样的内容,可能会出现类似Error: ER_BAD_FIELD_ERROR: Unknown column 'xxxxxx' in 'field list'的错误。我的代码是

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