[英]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.