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

Javascript 我给他们ID时SQL没有更新,javascript,node.js,sqlite,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.messa

有人能告诉我为什么没有更新吗?该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}`);
    });
尝试console.log数据[0].Team1id并查看它提供了什么, 我真的看不出代码中有任何问题,只是team1id可能不正确

还有一件事


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

Im从控制台日志中返回:80267260358295550。它实际上是表中存在的ID。我将搜索sql注入!谢谢仍然看不出为什么它没有更新…在第二个查询中,您使用${data[0].Team1name},而在第一个查询中,您不使用---,请尝试它可能是问题尝试过,仍然相同。我对此感到非常惊讶,我找不到为什么它不更新eNameId是表的一部分?如果不是,我真的很抱歉,我从来没有这样使用SQL:\