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

Extraire des données d'image BLOB de MySQL en PHP

Vous pouvez stocker des images dans votre base de données si vous le souhaitez (bien qu'il n'y ait rien de mal à les stocker sous forme de fichiers non plus, choisissez ce qui est approprié dans votre situation), mais stockez les données binaires brutes dans un BLOB (c'est-à-dire ne les encodez pas avec base64). Vous pouvez intégrer les données binaires que vous obtenez de file_get_contents directement dans votre requête, à condition d'utiliser la bonne fonction d'échappement (mysql_real_escape_string dans votre cas) d'abord.

En ce qui concerne la sortie de l'image, vous pouvez le faire comme vous le faites actuellement, mais vous devrez le sortir encodé en base64 et avec un data Schéma d'URI comme ceci :

echo '<img alt="embedded image" src="data:image/png;base64,' . chunk_split(base64_encode($get_pics2['img_location'])) . '">';

Notez qu'il existe certains avantages et inconvénients des données d'image intégrées. Certains inconvénients importants à prendre en compte sont la surcharge importante de l'encodage base64 (environ 33 % plus grand que l'original) et les problèmes de mise en cache potentiels.