当我给他们 ID 时 SQL 没有更新



有人可以告诉我为什么这没有更新吗?表中存在该 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 更改其名称,它将不会在表格中找到自己!同时,您无法更改您的 ID。

    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}`);
    });

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


另一件事...

您需要保护 SQL,它容易受到 SQL 注入的攻击。搜索"node.js secure for MySQL injection"。

最新更新