-1
.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();
        }
      );
    });

此代码来自询问者声明。roleID、val.firstname 和 val.lastName 是很好的变量,因为它们在程序的其他地方进行了测试。虽然更新语句没有更新。我尝试在 where 语句变量周围加上双引号,但这不起作用。我究竟做错了什么?相同的语句在 mysql shell 中有效。

4

1 回答 1

0

我更改了代码以获取我想要更改的名称的 ID,而不是匹配 first_name 和 last_name。

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

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

然后我使用 Name() 来获取询问者问题的选择。

于 2021-12-09T21:35:24.153 回答