Cara Menyimpan Imej dalam Pangkalan Data Menggunakan PHP
Pernyataan Masalah
Apabila cuba menyimpan imej dalam pangkalan data MySQL menggunakan kod PHP untuk memuat naik daripada borang HTML, kod tersebut gagal memasukkan data imej kerana sintaks SQL ralat.
Analisis Kod
Kod yang diberikan gagal memasukkan data imej ke dalam pangkalan data kerana beberapa isu:
Penyelesaian
Untuk menyelesaikan isu ini dan berjaya memuat naik imej ke pangkalan data MySQL, pertimbangkan perkara berikut langkah:
Contoh Kod Menggunakan PDO
Kod PHP:
<?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(); } ?>
HTML Borang
<form action="insert_product.php" method="POST" enctype="multipart/form-data"> <label for="image">File:</label> <input type="file" name="image">
Pertimbangan
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Sintaks SQL Apabila Menyimpan Imej ke Pangkalan Data MySQL Menggunakan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!