[英]How to update a record based on the primary key PUT method Express node.js
目前我对如何在节点 js 中使用 put 语句有点困惑,目前我正在使用:
app.put("/cars/:id", (req, res) => { //get record based on id (uuid) e.g. http://localhost:3000/cars/a5ad957c-7d1b-11eb-8a21-0653a157c10e
connection.connect(function(err) {
connection.query(`UPDATE main.cars SET manufacturer= '${req.params.manufacturer}', WHERE id = '${req.params.id}')`, function(err, result, fields) {
if(err) res.send(err);
if(result) res.send(result);
});
});
});
但我在 postman 中收到以下错误:
{ "code": "ER_PARSE_ERROR", "errno": 1064, "sqlMessage": "您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册以获取在 'WHERE id = 附近使用的正确语法'a5ad957c-7d1b-11eb-8a21-0653a157c10e')' 在第 1 行","sqlState":"42000","index":0,"sql":"更新 main.cars SET 制造商 = '未定义',其中 id ='a5ad957c-7d1b-11eb-8a21-0653a157c10e')"
当我使用以下查询时:
http://localhost:3000/cars/a5ad957c-7d1b-11eb-8a21-0653a157c10e?manufacturer=prius
这里的简单答案是 SQL 中的字符串必须用'
字符引用。
…然而,虽然添加它们是一个简单的修复,但它会让你容易受到SQL 注入攻击。
查看如何在 SQL 库为您提供connection
object 的任何内容中使用参数化查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.