我无法将 JSON 字符串插入 mySQL 表中。
CREATE TABLE registered (
id int NOT NULL AUTO_INCREMENT,
name nvarchar(128) NOT NULL,
panels JSON NOT NULL,
PRIMARY KEY (id)
);
app.post("/registered", (req, res) => {
let data = req.body;
let sqlPost = `INSERT INTO registered (name, panels) VALUES ("${data.name}", "${data.panels}")`;
db.query(sqlPost, (error, result) => {
if (error) return res.json(error);
res.send({
message: "Registered.",
});
});
});
${data.panels}
好像{"panels":["uti","wound"]}
。我验证了 JSON 格式。
我收到的错误如下。
code: "ER_PARSE_ERROR"
errno: 1064
sql: "INSERT INTO registered \n (name, panels) \n VALUES (\"safas\", \"{\"panels\":[\"uti\",\"wound\"]}\")"
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 'panels\":[\"uti\",\"wound\"]}\",' at line 3"
sqlState: "42000"
我已经在这个问题上折腾太久了。这里到底出了什么问题?
我尝试去掉 ${data.panels} 周围的双引号。我验证了json。