【问题标题】:putting vars in sql query将变量放在sql查询中
【发布时间】:2021-04-28 03:32:23
【问题描述】:

Node 开发新手。

如何将变量放入 VALUES 部分的 sql 查询中。这就是我所拥有的。让我知道它是否会起作用。

  let email = req.body.email;
  let number = req.body.number;

  var sql = "INSERT INTO userdata (email, number) VALUES (email, number)";

谢谢

还有,第二个问题。无论如何我可以检查一条记录是否已经存在,在一个 sql 语句中具有相同的电子邮件或号码。

【问题讨论】:

  • var sql = `INSERT INTO userdata (email, number) VALUES (${email}, ${number})`;,但这确实不是正确的方法,因为如果email 或number 包含特殊字符,它将中断,并且容易受到SQL 注入攻击。正确的方法是parameterized queries。

标签: mysql node.js


【解决方案1】:

根据documentation,您应该使用参数化查询,例如:

const email = req.body.email;
const number = req.body.number;

const sql = "INSERT INTO userdata (email, number) VALUES (?, ?)";

connection.query(sql, [ email, number ], 

    function (err, results) {

    }
);

关于第二个问题:如果您希望您的表格将有每个电子邮件/号码对的唯一记录,您应该根据这些字段添加唯一索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多