javascript - 使用 NodeJS 从 MySQL 中删除记录
问题描述
我在尝试从数据库中删除记录时遇到问题。我收到此错误:您的 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 = ?";
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" >
解决方案
您只传递带有占位符的语句,但没有传递它的值。
从文档:https ://www.npmjs.com/package/mysql#escaping-query-values
正确的方法应该是为语句中的每个占位符添加值,如下所示:
connection.query(sql, [id], (error, results, fields) => {
if (error)
return console.error(error.message);
console.log('Deleted Row(s):', results.affectedRows);
res.redirect('/admin/painting');
});
请注意,无论语句中有多少值,它都必须是一个数组。
推荐阅读
- visual-studio - 如何从 Visual Studio 解决方案将 routes.json 放入 Web 应用程序
- javascript - 如何使用 Titanium 在 Android 中录制小尺寸语音文件?
- r - 如何处理:一个输入窗口和 2 个或更多操作按钮,但选择了不同的输入
- swift - 如何在不破坏 UI 的情况下将搜索放在另一个线程中?
- mern - 干净退出 - 重启前等待更改
- python - 如何比较存储在二维数组中的值?
- flutter - 错误:lib/Dashboard.dart:118:33:错误:找不到 Getter:'context'
- css - 为材质 UI 范围滑块的拇指设置不同的颜色
- elasticsearch - 有什么方法可以知道索引字段在 Elasticsearch 中占用多少磁盘空间
- python-3.x - If语句的超级混乱