mysql - mysql : nodejs 上的语法无效

标签 mysql node.js aws-lambda

nodejs新手。 我遇到了无效的语法错误。 这可能是由于试图转义字符而引起的。

let i = 0;
while(i < answered.length){
    let td = [
        connection.escape(questionnaireId),
        connection.escape(sId),
        connection.escape(questionId),
        connection.escape(answered[i]),
        connection.escape(hutk)
    ];
    values.push(td);
    i++;
}

let sql = "INSERT INTO answers (qId, sId, key, value, hutk) VALUES ?";
connection.query(sql, [values], function(err, result){
    if(err) throw err;
    console.log("Successfull Insert");
    connection.release();
});

我明白了

"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 'key, value, hutk) VALUES ('18', '\'yZfXqYnvIXmLMuDAthbRr7IHtkFp5cl2ZSPCsEwY\'', ' at line 1", "sqlState": "42000", "index": 0,

"sql": "INSERT INTO answers (qId, sId, key, value, hutk) VALUES ('18', '\\'yZfXqYnvIXmLMuDAthbRr7IHtkFp5cl2ZSPCsEwY\\'', '5','\\'23@sd.lk\\'', '\\'f98a7585ce8d984a902df90263cdab5d\\'')"

最佳答案

在mysql中键入一个保留字,请尝试

 let sql = "INSERT INTO answers (qId, sId, `key`, value, hutk) VALUES ?";

您可以放置​​所有列,但这也有效

关于mysql - mysql : nodejs 上的语法无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57949193/

相关文章:

javascript - 要执行的 Connection.query

java - 如何从 lambda 连接到 dynamodb

mysql - 如何创建此关系表?

php - 30 分钟后将行从一个 MySQL 表移至另一个表

具有计算字段和常规字段的 MySQL

php - 如何用外键存储地理位置?

Node.js 测试失败 - 找不到指定的过程,contextify.node?

javascript - Node Js中TCP连接中套接字的.on函数是什么

python-3.x - 如何使用 python asyncio 从 EC2 实例调用 AWS Lambda 函数

java - var/task/org/springframework/cglib/core/NamingPolicy.class(权限被拒绝 )", "errorType": "java.io.FileNotFoundException"