Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur dans la syntaxe SQL lors de la tentative de téléchargement d'une image dans le champ BLOB

Vous devez échapper le contenu de l'image.

Il existe différentes manières d'y parvenir :

1) Si la version de PHP que vous utilisez est mineure par rapport à PHP 5.5, vous pouvez utiliser la fonction "mysql_real_escape_string".

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

2) Encodez le contenu de l'image à l'aide de la fonction "base64_encode", l'encodage du contenu en base64 va augmenter la taille du fichier, mais est très sûr à utiliser.

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

Pensez à décoder le contenu avec la fonction "base64_decode" lorsque vous souhaitez lire ou télécharger le fichier.

3) Échappez aux guillemets doubles et simples à l'aide de la fonction "addslashes"

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

Pensez à supprimer les slashs lors de la lecture ou du téléchargement de l'image avec la fonction "stripslashes".