node.js中mysql query内的javascript变量

piztneat  于 2021-06-20  发布在  Mysql
关注(0)|答案(4)|浏览(464)

我想在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\'

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

aelbi1ox

aelbi1ox1#

我通常是这样做的,希望对你有帮助!

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});
        })
    })
})
72qzrwbm

72qzrwbm2#

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

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

a14dhokn3#

你需要这样的东西

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

它确实逃脱了单引号,即问题,你也可以尝试这样的东西

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

hmtdttj44#

尝试替换 / 这样地,

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

你可以用格式化后的值,

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

希望这有帮助!

相关问题