【问题标题】:Javascript variable inside mysql query in node.jsnode.js中mysql查询中的Javascript变量
【发布时间】:2018-12-27 13:49:31
【问题描述】:

我想在 MySQL 查询中传递一个 javascript 变量,但是,当我在 console.log 中运行查询时,却出现了两个“\”,因此代码不起作用。

App.js 代码

    app.get('/home', function(req, res){
     db.connect(function(err){
      var sale = req.query.cbosale;
       db.query("SELECT Year, Season FROM tsales WHERE Sale LIKE '"+sale+"'", function(err, result, fields){
        res.render('home', {title:"home",data:result});
      })
     })
   })

在 console.log 中,它显示查询为:-

    SELECT Year, Season FROM tsales WHERE Sale LIKE \'13\'

“\”符号阻止查询执行。你能帮帮我吗,我是新手。

【问题讨论】:

    标签: mysql node.js express pug


    【解决方案1】:

    我经常这样,希望对你有帮助!

    app.get('/home', function(req, res){
        db.connect(function(err){
            const sale = req.query.cbosale;
            const dbquery = "SELECT Year, Season FROM tsales WHERE Sale LIKE ?"
            db.query(dbquery, sale, function(err, result, fields){
                res.render('home', {title:"home",data:result});
            })
        })
    })
    

    【讨论】:

      【解决方案2】:

      将 JavaScript 变量包装在 '"+ variable +"' 中 例如,要根据列 id 从表中选择一行,您必须将 JavaScript var 包装在 '"+ variable +"' 例如:我们想从表中获取用户信息(用户名、性别、电子邮件......)他的所有信息,我们有他的 id,所以我们这样做:

      var userid = 8;    
      "SELECT * FROM table WHERE id = '"+ userid +"' "
      

      【讨论】:

        【解决方案3】:

        尝试像这样替换/

        var formatSaleValue = sale.replace(/\\/g,''));
        

        您可以使用格式化的值作为,

        db.query("SELECT Year, Season FROM tsales WHERE Sale LIKE '"+formatSaleValue+"'", function(err, result, fields){ ....
        

        希望这会有所帮助!

        【讨论】:

        • 你可以试试,sale.replace(/\\/g,'')); 吗?忘了它是 express.js :-)
        • 您是否将其声明为 javascript var,然后在您的 db.query... 语句中使用它,对吗?
        • 是的,将其声明为 javascript var。我尝试了一个静态的不,奇怪的事情,查询是一样的,但它运行,当我插入变量时,它没有运行。
        【解决方案4】:

        你需要这样的东西

        connection.query('SELECT Year, Season FROM tsales WHERE Sale ?', '%' + value + '%', ...)

        它确实逃脱了单引号,那个问题,你也可以尝试这样的事情

        LIKE " + connection.escape('%'+you var+'%')
        

        【讨论】:

          猜你喜欢
          • 2020-06-16
          • 2020-09-25
          • 2013-07-26
          • 2018-02-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-01
          相关资源
          最近更新 更多