当我给他们ID时,SQL不会更新

时间:2017-11-08 13:32:03

标签: javascript node.js sqlite

有人可以告诉我为什么这不更新? id存在于表中,但不会更新。

    let sql = `UPDATE Users
                SET MMR = MMR-30, Lose = Lose+1
                WHERE Nameid = ${data[0].Team1id}`;
   db.run(sql, data, function(err) {
      if (err) {
        return console.error(err.message);
        }
        console.log(`Row(s) updated: ${this.changes}`);
        });

但是当我编辑它时它会更新,但是我需要它来使用Nameid。因为如果team1更改其名称,它将不会在表中找到它自己!与此同时,你无法改变你的身份。

    let sql = `UPDATE Users
                SET MMR = MMR-30, Lose = Lose+1
                WHERE Name = "${data[0].Team1name}"`;  // this was changed
   db.run(sql, data, function(err) {
      if (err) {
        return console.error(err.message);
        }
        console.log(`Row(s) updated: ${this.changes}`);
        });

知道了!如果有一天有人遇到同样的问题,我会把它留在这里!

     let sql1 = `UPDATE Users
                SET MMR = MMR+25, Win= Win+1
                WHERE Nameid = ?`;
    db.run(sql1, data[0].Team1id, function(err) {
      if (err) {
        return console.error(err.message);
      }
      console.log(`Row(s) updated: ${this.changes}`);
    });

1 个答案:

答案 0 :(得分:1)

尝试console.log() data[0].Team1id,看看它给出了什么, 我真的无法在代码中看到任何问题,只是team1id可能不正确。

另一件事......

您需要保护SQL,它易受SQL注入攻击。搜索" node.js安全用于MySQL注入"。