Maison > développement back-end > tutoriel php > Comment dépanner les téléchargements d'images PHP qui ne parviennent pas à s'insérer dans une base de données MySQL ?

Comment dépanner les téléchargements d'images PHP qui ne parviennent pas à s'insérer dans une base de données MySQL ?

DDD
Libérer: 2024-12-07 00:53:15
original
479 Les gens l'ont consulté

How to Troubleshoot PHP Image Uploads Failing to Insert into a MySQL Database?

Comment télécharger des images dans une base de données MySQL à l'aide du code PHP

Le téléchargement d'images dans une base de données MySQL est une tâche courante lors du développement d'applications Web. Cependant, il est important de vous assurer que votre code PHP est correctement configuré pour gérer efficacement les données d'image.

Description du problème

Un développeur rencontre des problèmes avec son code PHP, ce qui vise à insérer des images dans une base de données MySQL. Le code ne génère aucun message d'erreur mais ne parvient pas à insérer les données d'image dans la base de données. Un extrait du code est fourni ci-dessous :

$image = file_get_contents ($_FILES['image']['tmp_name']);
$image_name = $_FILES['image']['name'];
if ($image_query = mysql_query ("insert into product_images values (1,'$image_name',$image )"))
{
  echo $current_id;
 //echo 'Successfull';
}
else
{
  echo mysql_error();
}
Copier après la connexion

Solution

Après analyse, les problèmes suivants ont été identifiés dans le code :

  • Configuration de la table SQL : Assurez-vous que la colonne de la table MySQL désignée pour stocker les images est de type BLOB pour prendre en charge les fichiers binaires. data.
  • Utilisation des fonctions MySQL : Le code PHP moderne doit utiliser les fonctions PDO ou MySQLi pour les interactions avec la base de données au lieu des fonctions MySQL obsolètes.
  • Structure du formulaire : Le formulaire HTML fourni dans l'extrait de code est obsolète et doit respecter ce qui suit format :
<form action="insert_product.php" method="POST" enctype="multipart/form-data">
    <label>File: </label><input type="file" name="image" />
    <input type="submit" />
</form>
Copier après la connexion
  • Échappement d'image : Lorsque vous traitez des données d'image sous forme de BLOB, assurez-vous qu'elles sont échappées à l'aide de mysql_real_escape_string() pour éviter les erreurs de syntaxe.

Code révisé

Ce qui suit le code intègre les correctifs nécessaires :

$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_name = addslashes($_FILES['image']['name']);
$sql = "INSERT INTO `product_images` (`id`, `image`, `image_name`) VALUES ('1', '{$image}', '{$image_name}')";
if (!mysql_query($sql)) { // Error handling
    echo "Something went wrong! :("; 
}
Copier après la connexion

En résolvant ces problèmes, le code PHP pourra télécharger avec succès des images dans la base de données MySQL. Il est également recommandé d'envisager de stocker les fichiers image sur disque plutôt que dans la base de données pour des raisons de performances et d'évolutivité.

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