这个问题在这里已经有答案了:
在mysql中何时使用单引号、双引号和反引号(13个答案)
两年前关门了。
我试图更新一个mysql数据库,但是当我执行查询时,我得到一个错误,var id(在where中用作字段)被用作列名。我看错了吗?我要做什么才能让这一切顺利?
控制台日志
var message = '';
var id = req.session.user.id;
console.log(req.session.user.id);
var post = req.body;
var worker= post.worker;
var farmer= post.farmer;
var soldier= post.soldier;
var defender= post.defender;
var sql= "UPDATE stats SET worker = `"+worker+"`, farmer = `"+farmer+"`, soldier = `"+soldier+"`, defender = `"+defender+"` WHERE `stats`.`id` = `"+id+"` ";
db.query(sql, function(err, results){
if(results){
res.send('/home/dashboard.ejs')
};
if(err){console.log(err)};
});
}
2条答案
按热度按时间js81xvg61#
错误的直接原因是您试图使用反引号而不是单引号来转义文本值。您看到的错误消息暗示了这一点。但是,不应仅用单引号替换这些反引号,而应使用准备好的语句:
js81xvg62#
试试这个:
我删除了id列名末尾的反勾号(不需要),并用单引号而不是反勾号正确地包围字符串。也不需要表名。