2016-11-19 5 views
-4

Wenn ich versuche, den folgenden Code auszuführen, zeigt es den Fehler:
Ungültige Abfrage: Sie haben einen Fehler in Ihrer SQL-Syntax; Sie in die Bedienungsanleitung zu Ihrer MySQL-Server-Version entspricht, die für die richtige Syntax in der Nähe zu nutzen '', '', '', '')‘in Zeile 1
Mysql kann die Daten nicht aktualisieren

$result = mysql_query("REPLACE INTO templates (id,title,subtitle,background,image,image2,image3,image4,image5,image6,createdby) VALUES ('$id','$title','$subtitle','$background','$image','$image2','$image3','$image4,'$image5','$image6','$fbuid')"); 
if (!$result) { 
    die('Invalid query: ' . mysql_error()); 
} 


Aber der folgende Code funktioniert völlig fein:

mysql_query("REPLACE INTO Users (fbuid,username,email,token) VALUES ('$fbuid', '$name', '$email', '$token')"); 


Was kann das Problem sein?

+0

Sie auf den früheren Post verweisen auf Daten aktualisieren http://stackoverflow.com/questions/10177208/update-a-column-value-replacing-part-of-a-string Hoffnung diese Ihnen helfen, . –

+2

Ich habe mich das zu oft gefragt, vielleicht können Sie unten kommentieren. Warum benutzt du 'mysql _ *()' Funktionen? – Xorifelse

+0

Wenn '$ id' Ihr Primärschlüssel ist, müssen Sie ihn nicht einfügen, Sie können ihn wie 'mysql_query (" REPLACE INTO "Vorlagen (ID, Titel, Untertitel, Hintergrund, Bild, Bild2, Bild3, Bild4, Bild5) leer lassen , image6, createdby) VALUES ('', '$ title', '$ subtitle', '$ background', '$ image', '$ image2', '$ image3', '$ image4,' $ image5 ',' $ image6 ',' $ fbuid ') ");' – EaBangalore

Antwort

0

Eigentlich fehlte mir ein ' Zeichen nach $image4 ... Problem gelöst.

+0

* Bitte * nicht wild Benutzerdaten in SQL-Anweisungen wie Sie getan haben, ist es eine offensichtliche potenzielle Sicherheitslücke. Wenn $ title von einem Benutzer kommt und ein Apostroph enthält, können sie aus Ihrem SQL-Code herausbrechen und z. möglicherweise löschen Sie Ihre gesamte Datenbank. Bitte lesen Sie das PHP-Handbuch zur Verwendung von Platzhaltern, z. mit http://php.net/manual/en/mysqli.quickstart.prepared-statements.php (oder PDO-Version) oder wenn Sie müssen, mysql_real_escape_string. –

Verwandte Themen