Insérer des images dans une base de données MySQL à l'aide de PHP peut être délicat. Une erreur courante consiste à intégrer directement les données binaires à l'aide de file_get_contents(). Cela entraîne le stockage d'une chaîne représentant l'appel de fonction au lieu des données d'image réelles.
Pour insérer correctement les données d'image, vous devez concaténer le résultat de file_get_contents(). Cela peut être fait en sortant de la chaîne et en ajoutant explicitement la valeur :
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','" . file_get_contents($tmp_image) . "')";
Les données binaires peuvent contenir des caractères spéciaux qui peuvent invalider la requête SQL. Pour éviter cela, échappez aux données à l'aide de mysql_escape_string() :
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','" . mysql_escape_string(file_get_contents($tmp_image)) . "')";
Le stockage de grandes images dans une base de données peut entraîner des problèmes de performances. Pensez à utiliser un système de stockage de fichiers distinct, tel qu'Amazon S3 ou un système de fichiers, et à stocker le chemin ou la référence de l'image dans la base de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!