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

Comment insérer correctement des images dans une base de données MySQL à l'aide de PHP ?

Patricia Arquette
Libérer: 2024-12-31 13:17:18
original
889 Les gens l'ont consulté

How to Properly Insert Images into a MySQL Database Using PHP?

Comment insérer des images dans une base de données MySQL à l'aide de PHP

Problème :

Vous essayez de stocker des images dans une base de données MySQL mais le programme n'insère pas les données d'image.

Extrait de fourni Code :

    $file = $_FILES['image']['tmp_name'];
    ...
    if ($image_query = mysql_query ("insert into product_images values (1,'$image_name',$image )"))
    {
        ...
    }
Copier après la connexion

Message d'erreur :

Vous avez une erreur dans votre syntaxe SQL ; vérifiez le manuel qui correspond à la version de votre serveur MySQL pour connaître la bonne syntaxe.

Solution :

1. Assurez-vous que la colonne d'images est de type BLOB :
Vérifiez que la colonne que vous utilisez pour stocker les images est du type de données BLOB.

2. Nettoyez les données d'entrée :
Utilisez les fonctions MySQLi pour gérer les requêtes SQL et échapper les caractères spéciaux dans les données d'entrée afin d'empêcher l'injection SQL.

Code corrigé (en supposant que l'ID est toujours « 1 » ):

$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_name = addslashes($_FILES['image']['name']);

$query = "INSERT INTO product_images (id, image, image_name) VALUES ('1', '{$image}', '{$image_name}')";

if (mysqli_query($conn, $query)) {
    ...
}
Copier après la connexion

3. Mettre à jour le formulaire HTML :
Le formulaire HTML doit être mis à jour pour utiliser l'attribut enctype correct pour le téléchargement de fichiers :

<form action="insert_product.php" method="POST" enctype="multipart/form-data">
    <input type="file" name="image" />
    <input type="submit" />
</form>
Copier après la connexion

4. Stocker les fichiers sur le disque (facultatif) :
Envisagez de stocker les fichiers image sur le disque au lieu d'utiliser une base de données MySQL pour de grandes quantités de données. Cela peut améliorer les performances et réduire la charge de 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
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