插入数据库的Nodej失败

时间:2018-04-09 12:22:28

标签: mysql node.js

我一直试图让这个脚本与值绑定一起工作,但似乎它不能使用mainTable变量。

var mainTable = "tasks";
var con = mysql.createConnection({
    host: "host",
    user: "user",
    password: "password",
    database: "database"
});

con.connect(function (err) {
    if (err) throw err;
    console.log("Connected!");
    var values = {
        id: "id",
        url: "url",
        assignee: "akjdh",
        status: "ahsbdu",
        type: "apsokdn",
        description: "asd",
        department: "department"
    };

    var query = con.query("INSERT INTO ? SET ? ON DUPLICATE KEY UPDATE ?", [
            mainTable,
            values,
            values
        ], function (err, result) {
        if (err) throw err;
        console.log("1 record inserted");
    });
});

我收到以下错误:

  

错误:ER_PARSE_ERROR:您的SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在''任务'设置id =' id',url =' url',assignee =' akjdh',{{1} } =' ahsbdu'在第1行

如果我将表值设置为绑定,我不明白为什么会失败。

1 个答案:

答案 0 :(得分:1)

必须使用反引号@App/components/videoElement.html.twig转义Mysql标识符,而不是使用`

  • '用于使用?
  • 转义值
  • '用于使用??
  • 转义标识符

此时它应该是:

`

mysql: Escaping query identifiers

  

或者,您可以使用??字符作为您希望像这样转义的标识符的占位符: