繁体   English   中英

如何根据主键 PUT 方法更新记录 Express node.js

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM