Não consigo inserir uma string JSON em uma tabela 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}
parece {"panels":["uti","wound"]}
. Eu verifiquei o formato JSON.
O erro que estou recebendo é o seguinte.
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"
Estou brincando com isso há muito tempo. O que diabos há de errado aqui?
Tentei me livrar das aspas duplas em torno de ${data.panels}. Eu verifiquei o json.