Comment enregistrer des images dans une base de données à l'aide de PHP
Énoncé du problème
Lors de la tentative d'enregistrement images dans une base de données MySQL utilisant du code PHP pour télécharger à partir d'un formulaire HTML, le code ne parvient pas à insérer les données d'image en raison d'une syntaxe SQL erreur.
Analyse du code
Le code fourni ne parvient pas à insérer les données d'image dans la base de données en raison de plusieurs problèmes :
Solution
Pour résoudre ces problèmes et téléchargez avec succès les images dans la base de données MySQL, envisagez les étapes suivantes :
Exemple de code utilisant PDO
PHP Code :
<?php try { // Connect to the database using PDO $dsn = 'mysql:host=localhost;dbname=database_name'; $username = 'username'; $password = 'password'; $conn = new PDO($dsn, $username, $password); // Check if the image column is BLOB type $query = "DESCRIBE table_name"; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); if ($result[0]['Type'] != 'blob') { throw new Exception('The image column is not of BLOB type'); } // Process the image upload $file = $_FILES['image']['tmp_name']; $image_name = $_FILES['image']['name']; $image = file_get_contents($file); // Prepare the INSERT statement $query = "INSERT INTO product_images (id, image_name, image) VALUES (1, ?, ?)"; $stmt = $conn->prepare($query); // Execute the statement and bind parameters $stmt->execute([$image_name, $image]); // Success message echo "Image uploaded successfully"; } catch (Exception $e) { echo "Failed to upload image: " . $e->getMessage(); } ?>
Formulaire HTML
<form action="insert_product.php" method="POST" enctype="multipart/form-data"> <label for="image">File:</label> <input type="file" name="image">
Considérations
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!