2016-04-06 8 views
0

Ich habe meine 5.1.73 MySQL-Handbuch durchgemacht und ich kann einfach nicht den Syntaxfehler feststellen, dass MySQL gibt mir, wenn ich versuche, etwas zu POST/GET:Was ist mit diesem MySQL-Syntaxfehler?

mysqli_query($connect,'INSERT INTO serial (name, company, algo, country, notes) VALUES ('.$_GET['name'].','.$_GET['company'].','.$_GET['algo'].','.$_GET['country'].','.$_GET['notes'].')'); 

MySQL Fehler:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FCINGZ000***,Unknown,Thanks)' at line 1

+1

Bitte schreiben Sie die Fehlermeldung und suchen Sie nach SQL Injection. Vermutlich fehlen Ihnen einige einfache Anführungszeichen ('' ') um Ihre String-Werte. – ccKep

+0

@ccKep Sie haben einen Fehler in Ihrer SQL-Syntax. Überprüfen Sie das Handbuch, das Ihrer MySQL-Server-Version für die richtige Syntax in der Nähe von "FCINGZ000 ***, Unknown, Thanks)" in Zeile 1 – Kirsty

+2

entspricht Mit einer vorbereiteten Anweisung wird dies behoben (Sie fehlen Anführungszeichen um die String-Werte) wird auch die große SQL-Injection-Schwachstelle beheben, die Sie haben, siehe [Wie kann ich die SQL-Injektion in PHP verhindern?] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in) -php) –

Antwort

0

Sie sollten die Werte $_GET einer Variablen zuweisen, um Syntaxfehler zu vermeiden. Verhindern Sie auch, dass MySQL Injection mysqli_real_escape_string() verwendet.

$name = mysqli_real_escape_string($connect, $_GET['name']); 
$company = mysqli_real_escape_string($connect, $_GET['company']); 
$algo = mysqli_real_escape_string($connect, $_GET['algo']); 
$country = mysqli_real_escape_string($connect, $_GET['country']); 
$notes = mysqli_real_escape_string($connect, $_GET['notes']); 

mysqli_query($connect, "INSERT INTO serial (name, company, algo, country, notes) VALUES ('$name', '$company', '$algo', '$country', '$notes')"); 
+0

Hey, danke für die Antwort, aber damit bekomme ich einen PHP-Parse-Fehler. – Kirsty

+0

Whoops Ich habe vergessen, es einzufügen! :) PHP Parse Fehler: Syntaxfehler, unerwartete T_VARIABLE in /var/www/html/SN/postdata.php auf Linie 11 – Kirsty

+0

@Kirsty Aktualisierte Post, es sollte jetzt funktionieren – Panda