需要帮助,用callback来编写node.js中的mysql更新查询

我是Node.js的初学者。 请帮助解决这个问题。

不给WHERE子句更新工作正常。 下面是没有“WHERE”子句的脚本:

var post = {name: 'Amit', mobile:'123456'}; var query = connection.query('UPDATE contacts SET ? ', post , function(err, result) {}); console.log(query.sql); 

输出:

在这里输入图像说明

现在我添加了'WHERE'子句..getting错误:

 var post = {name: 'Amit', mobile:'123456'}; var condition = {id:4}; var query = connection.query('UPDATE contacts SET ? ',post,' WHERE '+ condition , function(err, result) {}); console.log(query.sql); 

输出:

在这里输入图像说明

根据API,你应该写你这样的查询:

 connection.query('UPDATE contacts SET Name = ?,Mobile=? WHERE yourCondition = ?', [post.name,post.mobile,condition], function(err, result) {}) 

试试这个代码:

 var post = {name: 'Amit', mobile:'123456'}; var condition = {id:4}; var query = connection.query('UPDATE contacts SET ? WHERE ?', [post, condition] , function(err, result) {}); console.log(query.sql); 

试试这个,它为我工作

 connection.query('UPDATE nodeDB.USER SET USER_PASSWORD :Pass WHERE USER_NAME :Name', {Name: 'max',Pass: '123'}, function(err, rows) { }); 

检查我的代码也适合你。

 router.all('/setLoginDetails', function (req, res) { if(req.method == 'POST') { var Req = req.body; } else { var Req = req.query; } if(Req.lang == undefined || Req.lang == 'en') { const message = require('../lang/messages_en.json'); } if(Req.id == undefined || Req.id == '') { return res.json({"success" : false, "Message" : message.REQUIRED , "data" : {} }); } qb.select('id') .where({id: Req.id}) .get('table', (err,rows) => { if (err || rows.length == 0) { return res.json({"success" : false, "Message" : "No data found", "data" : Response}); } else { _.each(rows, function(record) { var token = tokenGenerate(); qb.update('token', {token: token}, {driver_id:record.id}, (err, result) => { if (err) return console.error(err); }); qb.select('*').where({driver_id: record.id}).get(model.DriverLogin, (err,rows) => { var lat = Req.lat; var lng = Req.lng; if(Req.lat == '') { lat = 0.0; } if(Req.lng == '') { lng = 0.0; } var updateData = {lat : lat ,lng : lng, status : 'free', screen : Req.device_info, driver_id : record.id}; if(rows.length > 0) { qb.update('localtion', updateData, {driver_id:record.id}, (err, result) => { if (err) return console.error(err); }); } else { qb.insert(model.DriverLogin, updateData, (err, res) => { if (err) return console.error(err); }); } }); }); return res.json({"success" : true, "Message" : "Data Updated", "data" : Response}); } } ); });