【发布时间】:2022-01-11 05:41:57
【问题描述】:
function addEmployee() {
inquirer
.prompt([
{
name: "firstname",
type: "input",
message: "Enter their first name ",
},
{
name: "lastname",
type: "input",
message: "Enter their last name ",
},
{
name: "role",
type: "list",
message: "What is their role? ",
choices: selectRole(),
},
{
name: "choice",
type: "rawlist",
message: "Whats their managers name?",
choices: selectManager(),
},
])
.then(function (val) {
var roleId = selectRole().indexOf(val.role) + 1;
var managerId = selectManager().indexOf(val.choice) + 1;
db.query(
"INSERT INTO employee (first_name, last_name, role_id, manager_id) values ('?', '?', ?, ?)?",
{
first_name: val.firstName,
last_name: val.lastName,
manager_id: managerId,
role_id: roleId,
},
function (err) {
if (err) throw err;
console.table(val);
startPrompt();
}
);
});
}
无法使 INSERT into employees 查询语句工作。我正在使用 mysql2 npm 包与 Node JS 中的 Mysql 数据库交互。试图将询问者问题的答案传递到准备好的语句中以插入到员工表中。如何为准备好的语句传入变量?
【问题讨论】:
-
“不能让它工作”是什么意思?你能edit你的问题吗?
-
作为数组传递,
db.query('... VALUES (?, ?, ...)', [val.firstName, val.lastName, ...]) -
code: 'ER_PARSE_ERROR', errno: 1064, sqlState: '42000', sqlMessage: "您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本对应的手册以获取正确的语法在“?”附近使用在第 1 行", sql: "INSERT INTO 员工 (first_name, last_name, role_id, manager_id) 值 ('NULL', 'NULL', 0, 0)?"
-
试图将其作为数组传递
-
也应该是
?,而不是'?',
标签: javascript node.js mysql2