Grundsätzlich habe ich eine Registrierungsseite, wo Sie ein Konto für ein Spiel mit einem Serienschlüssel registrieren können. Ich überprüfe, ob der Schlüssel, der eingegeben wurde, in der Datenbank ist.PHP- MYSQL Syntax Fehler
$keyquery = mysql_query("SELECT * FROM keys WHERE key = '$_POST[key]' AND used = '$used'") or die(mysql_error());
if(!$row = mysql_fetch_array($keyquery) or die(mysql_error()))
{
//key works
}
else
{
//key doesnt work
}
Jetzt, wenn ich versuche, ein Konto zu registrieren, erhalte ich einen Fehler.
Sie haben einen Fehler in Ihrer SQL-Syntax; Sie in der Bedienungsanleitung für die richtige Syntax verwenden in der Nähe von ‚Schlüssel WHERE key =‚1234‘AND verwendet =‘ 0" in Zeile 1
'keys' und' key' sind [reservierte Wörter] (https://dev.mysql.com/doc/refman/5.5/en/keywords.html). Surround sie – ImClarky
Ohne die enormen SQL-Injizierungsmöglichkeiten hier zu erwähnen ... –
Sie könnten sich Ihren Code ansehen und 'mysql_real_escape_string' für' $ _POST' verwenden, zB 'mysql_real_escape_strin g ($ _ POST ["key"]) '. Ihr aktueller Code ist vollständig anfällig für SQL-Injektionen – Jer