Как я могу заставить подготовленный оператор обновления работать в JavaScript в узле JS

#javascript #mysql #node.js #inquirerjs

#язык JavaScript #mysql #node.js #вопрошающий

Вопрос:

 .then(function (val) {  var roleId = roleArr.indexOf(val.role)   1;  db.query(  'UPDATE employee SET role_id = ? WHERE first_name = ? AND last_name = ?;',  [roleId, val.firstname, val.lastName],  function (err) {  if (err) throw err;  console.table(val);  startPrompt();  }  );  });  

Этот код взят из заявления запрашивающего. Идентификатор роли, val.firstname и val.LastName являются хорошими переменными, поскольку они тестируются в других частях программы. Однако инструкция update не обновляется. Я попробовал это с двойными кавычками вокруг переменных оператора where, но это не работает. Что я делаю не так? То же самое утверждение работает в оболочке mysql.

Комментарии:

1. Сообщения об ошибках?

2. Как мне зарегистрировать результаты запроса в консоли?

3. Никаких сообщений об ошибках просто не запускает запрос.

Ответ №1:

Я изменил код, чтобы получить идентификатор имени, которое я хотел изменить, вместо сопоставления имени и фамилии.

 var nameArr = []; function Name() {  db.query(  "SELECT * FROM employee",  function (err, res) {  if (err) throw err;  for (var i = 0; i lt; res.length; i  ) {  nameArr.push(res[i].first_name   " "   res[i].last_name);  }  });  return nameArr; }  

и

 var nameId = nameArr.indexOf(val.name)   1;  

Затем я использовал Имя (), чтобы получить варианты ответа на вопрос спрашивающего.