mysql转义字符串node js`

vfwfrxfs  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(903)

所以我使用node js,我有下面的mysql查询,我使用npm 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”。有人知道这是为什么吗?或者如果新的语法自动阻止了它。

qacovj5a

qacovj5a1#

使用[]语法转义数据,如下所示

result = await database.query(
        "INSERT INTO user SET ?",
        [req.body],
        function(error, result) {
          if (!error) {
            console.log("worked");
          } else {
            console.log(error);
          }
        }
      );

相关问题