MySQL查询我有以下查询我使用的查询功能(https://github.com/mysqljs/mysql#escaping-query-values):逃逸问号字符作为占位符中的NodeJS
database.query("UPDATE Project SET Content = 'Hello ?' WHERE Id = ?", [id], function(err, rows, fields) {
if (err) {
console.log(err);
res.json({ status: 'FAIL QUERY' });
} else {
res.json({ status: 'SUCCESS' });
}
});
我有一个错误,因为它正在取代问号上“'你好?'”和“WHERE ID =?”而他只有一个属性:[id]。 如何避免这种情况?
用户会被告知这种行为(并且还解释了这一点,尽管没有太多的说法,提供的功能比官方执行准备好的语句更方便)。还有其他选项可用。 – robertklep
@robertklep,不管行为是否记录在案,这是错误的。我认为Node.js应该是如此的热门,比PHP好得多 - 但PDO确实解析了参数。对不起,我不接受这个错误的借口。这实在令人失望,特别是对于已经存在数年的软件包而言。 –
PHP与此有什么关系?此外,如果您对此感到如此强烈,请随时发布错误报告:https://github.com/mysqljs/mysql/issues此外,这不是Node的唯一MySQL库,['mysql2']( https://开头github上。com/sidorares/node-mysql2#using-prepared-statements)支持正确的预处理语句。 – robertklep