我通常是一个初学者,并且尝试将MySQL与nodeJS结合使用以能够将项目集成到WordPress中。
app.post('/users/add', (req, res) => {
id = req.body.id, firstname = req.body.firstname, surname =
req.body.surname
let sql = "INSERT INTO `users_tbl` VALUES (id, firstname, surname)";
db.query(sql, [id, firstname, surname],
(err, rows, fields) => {
if(!err)
res.send("User successfully added");
else
console.log(err);
});
})
使用给定的代码,我可以通过Postman添加一个条目,但是一个空条目。 我已经尝试过将值分配给VALUES之后的键,但是也许我的语法错误
答案 0 :(得分:0)
app.post('/users/add', (req, res) => {
id = req.body.id,
firstname = req.body.firstname,
surname = req.body.surname
let sql = "INSERT INTO `users_tbl` (id, firstname, surname) VALUES
(?,?,?)";
db.query(sql, [id, firstname, surname], (err, rows, fields) => {
if(!err)
res.send("User successfully added");
else
console.log(err);
});
});
尝试使用此代码,只需将您的值替换为?并再次运行邮递员。
答案 1 :(得分:0)
假设您正在使用this module。
db.query(sql, [id, firstname, surname]
这里您要将变量传递到查询中,以替换占位符值。
let sql = "INSERT INTO `users_tbl` VALUES (id, firstname, surname)";
但是在这里,您只是放置了列名而不是占位符。
将其更改为:
let sql = "INSERT INTO `users_tbl` VALUES (?, ?, ?)";
此外:您可能应该将id
字段设为自动递增字段,而不是用户提交的值。
答案 2 :(得分:-1)
在您的sql查询中,您不是传递变量(id,名字和姓氏)而是一个字符串。 我认为这是您想要实现的目标:
let sql = "INSERT INTO `users_tbl` (ID, firstname, surname) VALUES ("+id+", "+firstname+", "+surname+")";
答案 3 :(得分:-2)
添加一个断点或使用console.log检查您是否真的在req.body中获取了body字段。 通过邮递员发送请求并在正文中发送原始json时,尝试在标头中将“ Content-Type”设置为application / json。