Почему эти переменные вставляются в неправильную часть моего node.js sql запроса? - PullRequest
1 голос
/ 04 апреля 2020

Я пытаюсь выполнить запрос sql, используя Node.js, используя подготовленный оператор, следующим образом:

sql = "UPDATE users SET ? WHERE user_id = ?"
        con.query(sql, {current_quiz: quizId, user_id: selected[0]},
        function(result, err) {
          if(err) throw err
          console.log(result)
        })

Однако результат возвращает ошибку, поскольку код вставляет дополнительный столбец в запрос:

sql: 'UPDATE users SET `current_quiz` = 1, `user_id` = \'1\' WHERE user_id = ?'

Что я могу сделать, чтобы selected[0] использовался частью оператора user_id=, а не добавлялся как дополнительная пара столбец / значение?

1 Ответ

1 голос
/ 04 апреля 2020

Используйте массив, а не объект, чтобы задать параметры для такого запроса.

const sql =
 'UPDATE users SET current_quiz = ? WHERE user_id = ?'
con.query(sql, [quizId, selected[0]] ...

Метод query() принимает их в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...