【发布时间】:2019-01-12 03:28:37
【问题描述】:
我正在尝试更新 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)};
});
}
【问题讨论】:
-
@David 这不是完全重复的,因为它没有说明从 Node 执行 MySQL 查询时正确的过程是什么。
-
@TimBiegeleisen:使用 Node 时的语法是否不同?反引号仍然被视为反引号,不是吗?
-
无论如何,该链接不够具体,因为它暗示所有 OP 需要做的就是用单引号替换反引号,这基本上是错误的。
-
我同意这里有很多问题。无效的语法是导致错误的原因。 OP 也受到 SQL 注入的影响,并且通常不正确地使用工具,并且控制台输出还意味着预期值一开始没有被发送到服务器。有很多东西要修复。修复语法至少应该让他进入下一步。
-
对不起,我写错了日志,我把点赞改到了正确的
标签: javascript mysql node.js sql-update mysql-error-1054