Maison >base de données >tutoriel mysql >Comment insérer correctement des blobs (images) dans MySQL à l'aide de PHP ?

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

Linda Hamilton
Linda Hamiltonoriginal
2024-12-20 09:43:13512parcourir

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

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

Lorsque vous essayez de stocker une image dans une base de données MySQL, vous pourriez rencontrer un problème. Ce guide vous fournira des solutions pour stocker avec succès vos données d'image.

Issue

<br>$sql = "INSERT DANS ImageStore(ImageId,Image)<br>VALUES('$this->image_id','file_get_contents($tmp_image)')";<br>

Ce code construit une chaîne en PHP, mais l'appel de fonction file_get_contents($tmp_image) n'est pas évalué avant que la chaîne ne soit créé. Par conséquent, les données binaires réelles ne sont pas insérées.

Solution 1

Pour résoudre ce problème, vous devez explicitement concaténer le résultat de la fonction call:

<br>$sql = "INSERT INTO ImageStore(ImageId,Image)<br>VALUES('$this->image_id','" . file_get_contents ($tmp_image) . "')";<br>

Solution 2

De plus, assurez-vous que tous les caractères des données binaires qui pourraient interférer avec la requête sont escaped:

<br>$sql = "INSERT INTO ImageStore(ImageId,Image)<br>VALUES('$this->image_id','" . mysql_escape_string (file_get_contents($tmp_image)) . "')";<br>

Solution 3

Le stockage de données binaires volumineuses dans une base de données n'est généralement pas recommandé . Cela peut entraîner des problèmes de performances et une surcharge de la base de données. Pensez à utiliser un système de fichiers distinct pour stocker vos images.

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!

Déclaration:
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