"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2025-01-16
Parcourir:500

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();
}

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 accueillir les données binaires.
  • Utilisation des fonctions MySQL : Moderne Le code PHP 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 le format suivant :
  • É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é

Le code suivant 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! :("; 
}

En résolvant ces problèmes, le code PHP sera capable de 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 le disque plutôt que dans la base de données pour des raisons de performances et d'évolutivité.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3