所以我正在使用节点js,我使用npm mysql库处理以下mysql查询消息。
let userName = req.body.userName;
let sqlStatement = `SELECT COUNT(*) AS exist FROM user where username=${userName}`;
是新的es6语法自动阻止mysql注入。 因为当我这样做
let userName = req.body.userName;
userName = connection.escape(userName);
let sqlStatement = `SELECT COUNT(*) AS exist FROM user where username=${userName}`;
它将单引号放在数据库中的数据周围,例如“ myUserName”。有人知道为什么是这样吗?或新语法是否会自动阻止它。
答案 0 :(得分:0)
使用[]语法转义数据
result = await database.query(
"INSERT INTO user SET ?",
[req.body],
function(error, result) {
if (!error) {
console.log("worked");
} else {
console.log(error);
}
}
);