我正在尝试更新MySQL,每次我运行它时都会出现错误。我错过了什么?我看了所有的帖子有类似的错误,我做的每一个改变,我得到同样的错误。
你有一个错误的SQL语法;查看手册对应于MySQL服务器版本,以便使用正确的语法near 'WHERE = ' lastName ' = 'zuniga', ' roleID ' = 2' at line 1
I have try:
"UPDATE employees SET ?"
它只是更新列表上的每个人。而不仅仅是我想要更新的个人。
function updateEmployeeRole() {
connection.query("SELECT employees.lastName, role.title FROM employees JOIN role ON employees.roleID = role.id;",
(err, res) => {
if (err) throw err;
inquirer.prompt([
{
name: "lastName",
type: "rawlist",
choices: function () {
var lastName = [];
for (var i = 0; i < res.length; i++) {
lastName.push(res[i].lastName);
}
return lastName;
},
message: "What is the employee's last name? ",
},
{
name: "role",
type: "rawlist",
message: "What is the employee's new title? ",
choices: selectRole()
},
]).then(function (answers) {
var roleId = selectRole().indexOf(answers.role) + 1;
connection.query("UPDATE employees SET WHERE ?",
{
lastName: answers.lastName,
roleID: roleId
},
function (err) {
if (err)
throw err;
console.table(answers);
startProcess();
});
});
});
}
使用此表单:
connection.query('UPDATE users SET foo = ?, bar = ?, baz = ? WHERE id = ?', ['a', 'b', 'c', userId], function (error, results, fields) {
if (error) throw error;
// ...
});
https://www.npmjs.com/package/mysql
此链接将为您提供更多详细信息:
需要在数组中传递参数
connection.query("UPDATE employees SET ? WHERE ?",
[
{ roleID: roleId },
{ lastName: answers.lastName }
],
function (err) {
if (err)
throw err;
console.table(answers);
startProcess();
});