node.js中mysql query内的javascript变量

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

我想在mysql查询中传递一个javascript变量,但是,当我在console.log中运行查询时,出现了两个“\”,因此代码无法工作。
app.js代码

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

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

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

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

aelbi1ox

aelbi1ox1#

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

  1. app.get('/home', function(req, res){
  2. db.connect(function(err){
  3. const sale = req.query.cbosale;
  4. const dbquery = "SELECT Year, Season FROM tsales WHERE Sale LIKE ?"
  5. db.query(dbquery, sale, function(err, result, fields){
  6. res.render('home', {title:"home",data:result});
  7. })
  8. })
  9. })
72qzrwbm

72qzrwbm2#

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

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

a14dhokn3#

你需要这样的东西

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

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

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

hmtdttj44#

尝试替换 / 这样地,

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

你可以用格式化后的值,

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

希望这有帮助!

相关问题