Hallo,
ich bin seit kurzem zu MTA umgestiegen, also von Pawn zu Lua. Nun bin ich bereits durch die Materia gegangen, konnte bisher jedes Problem selbst lösen, außer das.
ERROR: Database query failed: near "UPDATE": syntax error (UPDATE players SET money=?, Kills=?, Deaths=? WHERE NAME=?)
Es soll ein eigenes Accountsystem sein, ist bereits fertig. Man kann sich einloggen und registrieren. Nur werden die Statistiken nicht gespeichert, wenn man den Server verlässt, weil diese Query nicht funktioniert..
Ausschnitt:
executeSQLQuery("UPDATE players SET Money=?, Kills=?, Deaths=? WHERE Name=?", tonumber(gPlayerMoney[username]), tonumber(gPlayerKills[username]), tonumber(gPlayerDeaths[username]), username)
Die Query an sich ist doch richtig oder? Es scheint es liegt an den Tables. Ich bin sonst immer mit Arrays umgegangen, Tables sind für mich völlig neu. Also ist es sehr warscheinlich, dass ich mit den Tables was falsches gemacht habe:
Ausschnitte
Tables werden initialisiert, sind also noch leer
gPlayerLoggedIn = { }
gPlayerMoney = { }
gPlayerScore = { }
gPlayerKills = { }
gPlayerDeaths = { }
gPlayerPassword = { }
Beim joinen werden die über den Spielernamen gesetzt:
username = getClientName(source)
gPlayerLoggedIn[username] = 0
gPlayerKills[username] = 0
gPlayerDeaths[username] = 0
gPlayerMoney[username] = 0
Sind keys über die Spielernamen sinnvoll? Habe ich es richtig gemacht?
Und sind eigentlich die Funktionen außer executeSQLQuery auch gegen SQL-Injection geschützt?