Javascript 使用NodeJS从MySQL中删除记录
我在尝试从数据库中删除记录时遇到问题。 我收到了这个错误:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“?”附近使用的正确语法Javascript 使用NodeJS从MySQL中删除记录,javascript,html,mysql,node.js,Javascript,Html,Mysql,Node.js,我在尝试从数据库中删除记录时遇到问题。 我收到了这个错误:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“?”附近使用的正确语法 app.post('/delete',function(req,res,next){ var id= req.body.painting_id; console.log(req.body.painting_id); let sql = "DELETE FROM Paintings WHERE id = ?&q
app.post('/delete',function(req,res,next){
var id= req.body.painting_id;
console.log(req.body.painting_id);
let sql = "DELETE FROM Paintings WHERE id = ?";
connection.query(sql, (error, results, fields) => {
if (error)
return console.error(error.message);
console.log('Deleted Row(s):', results.affectedRows);
res.redirect('/admin/painting');
});
})
这是我要删除的前端部分
<form action="/delete" method="POST">
<input type="text" name="painting_id" id="painting_id" >
<input type="text" name="painting_title" id="painting_title" >
您只传递带有占位符的语句,而不传递占位符的值 从文件中: 正确的方法应该是为语句中的每个占位符添加值,如下所示:
connection.query(sql,[id],(错误、结果、字段)=>{
如果(错误)
返回控制台错误(错误消息);
console.log('已删除行:',results.affectedRows);
res.redirect('/admin/painting');
});
请注意,无论语句中有多少值,它都必须是一个数组。如果您不太喜欢这种样式,那么值得检查并使用承诺驱动的代码。它使错误处理变得容易得多。例如,您在这里做得不对,
if(error)
子句中的return
是错误的,它无法调用next()
,只是让请求挂起。提示:如果使用占位符值,则必须同时提供值。