Ja Ihre SQL sieht wie folgt aus, wenn es vom MySQL-Server gelesen wird:
UPDATE tbl_intmsg SET time = 26, 2009, 2:28 pm, by = shamil.nunhuck
AND content = Test message!
Wie wird MySQL, was in dieser Aussage, was ist, um herauszufinden?
Stellen Sie sich zum Beispiel vor, dass Sie Ihren $ Inhalt auf '0 WHERE dummy = true' setzen. Dann würde Ihr SQL wie folgt aussehen:
UPDATE tbl_intmsg SET time = 26, 2009, 2:28 pm, by = shamil.nunhuck
AND content = 0 WHERE dummy = true
Sehen Sie das Problem? Wie kann SQL herausfinden, was Ihre Daten sind und was sind SQL-Schlüsselwörter?
Die Antwort ist: Zitate!
Ihre SQL sollte wie folgt aussehen:
UPDATE tbl_intmsg SET time = '26, 2009, 2:28 pm', by = 'shamil.nunhuck'
AND content = 'Test message!'
Ihre PHP SQL-Query-String könnte wie folgt aussehen:
$q="UPDATE tbl_intmsg SET time = '$dt', by = '$by' AND content = '$content'";
(Beachten Sie, dass PHP doppelte Anführungszeichen Zeichenfolgen für Variablen analysiert und ersetzt sie Beachten Sie auch, dass Sie die oben genannte Funktion
mysql_real_escape_string($var)
verwenden sollten um Ihre Daten zu bereinigen, bevor Sie sie in MySQL einfügen. Hier ist der Link, den Mechler nicht posten konnte: php.net/mysql-real-escape-string)
Prost!
/0
Fehler wie diese sind leichter zu beheben, wenn Sie die resultierende SQL-Zeichenfolge zu untersuchen, nicht der Code, der diese Zeichenfolge erzeugt. –