【问题标题】:Using Node and mysql. Insert fails at string variable使用节点和mysql。在字符串变量处插入失败
【发布时间】:2020-03-25 19:50:55
【问题描述】:

我正在尝试将一个字符串变量插入到我的数据库中,并且布尔值和 int 可以正常输入,但它总是告诉我

错误:列“spike”不存在

(spike 是字符串变量中的内容)

let sql2 = "INSERT INTO words (gameNumber, wordsOrdered, guessed, unkey) VALUES (2, "+wordsV[1]+", "+guessed[1]+", "+key[1]+" )"
pool.query(sql2, function(err, result){

wordsV 是一个字符串数组,猜测的是 bool 并进入,key 是 int 并进入。

【问题讨论】:

    标签: javascript mysql node.js database sql-insert


    【解决方案1】:

    你需要转义值

    let sql2 = "INSERT INTO words (gameNumber, wordsOrdered, guessed, unkey) VALUES (2, '"+wordsV[1]+"', '"+guessed[1]+"', '"+key[1]+"' )"
    pool.query(sql2, function(err, result){
    

    但最好的方法是正确转义值:https://github.com/mysqljs/mysql#escaping-query-values

    【讨论】:

      【解决方案2】:

      尝试像这样 (https://www.databasestar.com/sql-escape-single-quote/) 转义你的 sql 值:

      let sql2 = "INSERT INTO words (gameNumber, wordsOrdered, guessed, unkey) VALUES (2, '"+wordsV[1]+"', '"+guessed[1]+"', '"+key[1]+"' )"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-15
        • 2011-11-19
        • 1970-01-01
        • 1970-01-01
        • 2017-03-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多