2017-11-08 1 views
0

Kann mir jemand sagen, warum das nicht aktualisiert? Die ID existiert in der Tabelle, wird aber nicht aktualisiert.SQL wird nicht aktualisiert, wenn ich sie gebe ID

Aber es aktualisiert, wenn ich zu diesem bearbeiten, aber ich brauche es mit Nameid arbeiten Denn wenn das Team1 seinen Namen ändert, findet es sich nicht in der Tabelle wieder! Inzwischen kannst du deine ID nicht ändern.

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

Verstanden! Ich werde es hier lassen, wenn jemand eines Tages mit dem gleichen Problem stolpert!

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

Antwort

1

zu console.log() Versuchen Sie, die data[0].Team1id und sehen, was es gibt, ich wirklich kann kein Problem in dem Code sehen, nur dass team1id falsch sein könnte.


Eine andere Sache ...

Sie müssen die SQL sichern, ist es für SQL Injection verwundbar. Suche nach "node.js secure for MySQL injection".

+0

Ich bekomme dies von der Konsole Protokoll zurückgegeben: 80267260358295550. Welches ist eigentlich eine ID, die in der Tabelle existiert. Ich werde nach der SQL-Injektion suchen! Vielen Dank. Immer noch nicht sehen, warum es nicht aktualisieren ... – Boanak

+0

in der zweiten Abfrage Sie tun "$ {data [0] .Team1name}" – OverStudio

+0

und in der ersten verwenden Sie nicht - "-, versuchen, dass es sein kann Das Problem – OverStudio

Verwandte Themen