【问题标题】:invalid syntax on mysql : nodejsmysql 上的语法无效:nodejs
【发布时间】:2020-01-16 20:08:12
【问题描述】:

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();
});

我明白了

“错误号”:1064, "sqlMessage": "您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册以获取正确的 在 'key, value, hutk) VALUES ('18', '\'yZfXqYnvIXmLmuDAthbRr7IHtkFp5cl2ZSPCsEwY\'', ' 在第 1 行", "sqlState": "42000", “索引”:0,

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

【问题讨论】:

  • 用反引号 (`) 包裹转义的 sId 怎么样?
  • 和connection.escape('' + sId + '')一样? @Zolbayar
  • connection.escape(sId)周围的反引号
  • @Zolbayar 因为我使用占位符,我需要转义字符串吗?
  • 嗯,试一试也无妨

标签: mysql node.js aws-lambda


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2022-12-19
    • 2020-02-29
    • 1970-01-01
    • 2022-06-17
    • 2020-08-08
    相关资源
    最近更新 更多