使用 Nodejs 在 MySql2 的 JSON 列中存储 JSON 对象
Storing JSON object in JSON column in MySql2 using Nodejs
我有一个 JSON 对象,看起来像这样 -
{
"questions":
[{
"question_id": "1",
"question": "Choose games you're currently playing",
"answers":
[{ "answer_id" : "1", "answer": "game1", "checked": false },
{ "answer_id": "2", "answer": "game2", "checked" : true }]
},
{
//...
}]
}
我正在尝试使用 MySql2.
将其存储在 JSON 列中
我的查询 -
const query = `INSERT INTO user_questions(_id, questions,created_at, updated_at, deleted)
VALUES(1, '${JSON.stringify(questions)}', NOW(), NOW(), 0)`;
const result = await db.query(query)
但我收到以下异常错误 -
UnhandledPromiseRejectionWarning: Error: You have an error in your SQL syntax;
我到底做错了什么?
编辑:我发现这是因为问题中的撇号。如果我尝试 运行 没有它的查询,它工作正常。
您不应该使用直接插入,而是使用这种方法
const query = 'INSERT INTO user_questions(_id, questions,created_at, updated_at, deleted) values (?, ?, ?, ?, ?)';
const result = await db.query(query, [1, JSON.stringify(questions), NOW(), NOW(), 0)]);
正确转义所有列:using-prepared-statements
我有一个 JSON 对象,看起来像这样 -
{
"questions":
[{
"question_id": "1",
"question": "Choose games you're currently playing",
"answers":
[{ "answer_id" : "1", "answer": "game1", "checked": false },
{ "answer_id": "2", "answer": "game2", "checked" : true }]
},
{
//...
}]
}
我正在尝试使用 MySql2.
将其存储在 JSON 列中我的查询 -
const query = `INSERT INTO user_questions(_id, questions,created_at, updated_at, deleted)
VALUES(1, '${JSON.stringify(questions)}', NOW(), NOW(), 0)`;
const result = await db.query(query)
但我收到以下异常错误 -
UnhandledPromiseRejectionWarning: Error: You have an error in your SQL syntax;
我到底做错了什么?
编辑:我发现这是因为问题中的撇号。如果我尝试 运行 没有它的查询,它工作正常。
您不应该使用直接插入,而是使用这种方法
const query = 'INSERT INTO user_questions(_id, questions,created_at, updated_at, deleted) values (?, ?, ?, ?, ?)';
const result = await db.query(query, [1, JSON.stringify(questions), NOW(), NOW(), 0)]);
正确转义所有列:using-prepared-statements