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 )")) { ... }
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)) { ... }
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>
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!