繁体   English   中英

尝试将新行插入 MySQL 表中,Node.js 出现神秘错误。 无法工作

[英]Trying to INSERT new row into MySQL table with Node.js getting cryptic error. Can't get working

我正在尝试在名为身份验证的表中插入一个新行,但是尽管我进行了所有的修补,但我仍然不断收到这个模糊的错误,它在谷歌搜索中没有得到任何具体的信息。 错误:

 code: 'ER_PARSE_ERROR',
      errno: 1064,
      sqlMessage: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`token` = '1d281f4a-7079-40f9-a9ff-d7425df9315f', `ip` = '::1', `device_name` = ' at line 1",
      sqlState: '42000',
      index: 0,
      sql: "INSERT INTO `authentication` (token, ip, device_name, expiration_date) VALUES `token` = '1d281f4a-7079-40f9-a9ff-d7425df9315f', `ip` = '::1', `device_name` = 'desktop', `expiration_date` = '2020-09-20T02:06:59.658Z'"

编码:

con.connect((err) =>
{
    if (err) throw err;
    console.log("Connected to " + db_host);
    let sql = "INSERT INTO `authentication` (token, ip, device_name, expiration_date) VALUES ?";
    con.query(sql, {"token":token, "ip":user_ip, "device_name":device_type, "expiration_date":iso_expiration_date}, (err, result) =>
    {
        if (err) throw err;
        console.log("One token added to " + db_host);
    });
});

表“身份验证”有 4 列:

token           | VARCHAR(36)
ip              | VARCHAR(15)
device_name     | VARCHAR(7)
expiration_date | VARCHAR(24)

查询应该使用? 作为每个值的占位符:

let sql = "INSERT INTO `authentication` (token, ip, device_name, expiration_date) VALUES ( ?, ?, ?, ? )";

并绑定值:

con.query(sql, [token, user_ip, device_type, iso_expiration_date], (err, result)

来自文档: https://github.com/mysqljs/mysql#escaping-query-values

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM