Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Fehler in der SQL-Syntax beim Versuch, ein Bild in das BLOB-Feld hochzuladen

Sie müssen den Bildinhalt maskieren.

Es gibt verschiedene Möglichkeiten, dies zu erreichen:

1) Wenn die von Ihnen verwendete PHP-Version kleiner als PHP 5.5 ist, können Sie die Funktion "mysql_real_escape_string" verwenden.

$query="INSERT INTO records VALUES('','$name','$pname','$email','$phone','$cost','$des','$category','$date','" . mysql_real_escape_string($imagedata) ."');";

2) Codieren Sie den Bildinhalt mit der Funktion „base64_encode“, die Codierung des Inhalts in base64 wird die Dateigröße erhöhen, ist aber sehr sicher zu verwenden.

 $query="INSERT INTO records VALUES('','$name','$pname','$email','$phone','$cost','$des','$category','$date','" . base64_encode($imagedata) ."');";

Denken Sie daran, den Inhalt mit der Funktion "base64_decode" zu dekodieren, wenn Sie die Datei lesen oder herunterladen möchten.

3) Escape die doppelten und einfachen Anführungszeichen mit der "addslashes"-Funktion

 $query="INSERT INTO records VALUES('','$name','$pname','$email','$phone','$cost','$des','$category','$date','" . addslashes($imagedata) ."');";

Denken Sie daran, die Schrägstriche zu entfernen, wenn das Bild gelesen oder mit der "stripslashes"-Funktion heruntergeladen wird.