使用 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