mysql экранирующий строковый узел js` - PullRequest
0 голосов
/ 17 ноября 2018

Итак, я использую узел 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».Кто-нибудь знает, почему это?или если новый синтаксис предотвращает это автоматически.

1 Ответ

0 голосов
/ 27 ноября 2018

экранировать данные, используя синтаксис [], например:

result = await database.query(
        "INSERT INTO user SET ?",
        [req.body],
        function(error, result) {
          if (!error) {
            console.log("worked");
          } else {
            console.log(error);
          }
        }
      );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...