Maison > développement back-end > tutoriel php > Comment réussir à insérer des blobs (images) dans MySQL à l'aide de PHP ?

Comment réussir à insérer des blobs (images) dans MySQL à l'aide de PHP ?

Mary-Kate Olsen
Libérer: 2024-11-28 01:24:09
original
654 Les gens l'ont consulté

How to Successfully Insert Blobs (Images) into MySQL using PHP?

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

Problème :

Tentative de stocker une image dans une base de données MySQL, mais l'insertion échoue. La table de base de données comporte deux colonnes : ImageId (int) et Image (longblob). Le code PHP utilise file_get_contents() pour récupérer les données de l'image et les insère dans la colonne Image à l'aide de la requête SQL suivante :

$sql = "INSERT INTO ImageStore(ImageId,Image)               
                VALUES('$this->image_id','file_get_contents($tmp_image)')";
Copier après la connexion

Cependant, les données de l'image ne sont pas stockées dans la base de données.

Solution :

Le problème réside dans la manière dont le code PHP construit la requête SQL. L'appel de fonction file_get_contents() est inclus entre guillemets simples dans la chaîne de requête, ce qui signifie que les données d'image réelles ne sont pas insérées. Pour résoudre ce problème, la fonctionnalité d'interpolation de variables de PHP doit être utilisée :

$sql = "INSERT INTO ImageStore(ImageId,Image)
        VALUES('$this->image_id','" . file_get_contents($tmp_image) . "')";
Copier après la connexion

De plus, pour garantir que les données binaires ne contiennent aucun caractère susceptible d'interrompre la requête SQL, il est recommandé de nettoyer les données en utilisant la fonction mysql_escape_string() :

$sql = "INSERT INTO ImageStore(ImageId,Image)
        VALUES('$this->image_id','" . mysql_real_escape_string(file_get_contents($tmp_image)) . "')";
Copier après la connexion

Supplémentaire Considérations :

Le stockage de données binaires volumineuses dans des bases de données peut entraîner des problèmes de performances. Pensez à utiliser un support de stockage distinct, tel qu'un système de fichiers ou un service de stockage cloud, pour les images et autres objets volumineux.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal