Maison > développement back-end > tutoriel php > Comment insérer en toute sécurité des blobs d'images dans des bases de données MySQL à l'aide de PHP ?

Comment insérer en toute sécurité des blobs d'images dans des bases de données MySQL à l'aide de PHP ?

DDD
Libérer: 2024-12-05 15:07:12
original
782 Les gens l'ont consulté

How to Safely Insert Image Blobs into MySQL Databases using PHP?

Insérer des blobs dans des bases de données MySql avec PHP

Problème

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.

Solution 1 : Concaténation de variables

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) . "')";
Copier après la connexion

Solution 2 : assainissement

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)) . "')";
Copier après la connexion

Solution 3 : stockage séparé

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal