Memuat naik Imej ke Pangkalan Data MySQL Menggunakan PHP
Memasukkan imej ke dalam pangkalan data MySQL menggunakan PHP memerlukan beberapa langkah. Mari kita selesaikan isu dalam kod yang anda berikan:
1. Struktur Jadual Pangkalan Data:
Pastikan jadual pangkalan data anda mempunyai lajur yang ditakrifkan sebagai jenis BLOB atau MEDIUMBLOB untuk menyimpan data imej.
2. Penyata Disediakan:
Daripada menggunakan fungsi mysql_query() yang tidak digunakan, tukar kepada pernyataan yang disediakan menggunakan PDO atau MySQLi. Penyata yang disediakan menghalang kelemahan suntikan SQL.
3. Pengendalian Imej yang Betul:
Kod semasa mendapatkan semula data imej terus daripada fail sementara. Ini adalah risiko keselamatan. Sebaliknya, gunakan file_get_contents() dengan pilihan FILE_BINARY untuk memastikan kandungan binari dikendalikan dengan betul.
4. Sanitasi:
Sanitasi data imej menggunakan addslashes() atau mysqli_real_escape_string() untuk mengelakkan suntikan SQL.
5. Pertanyaan Sisipan Betul:
Pertanyaan sisipan hendaklah sepadan dengan struktur jadual dan membersihkan data dengan sewajarnya. Berikut ialah versi yang diperbetulkan:
$stmt = $mysqli->prepare("INSERT INTO product_images (id, image, image_name) VALUES (?, ?, ?)"); $stmt->bind_param("sis", 1, $image, $image_name); $image = file_get_contents($_FILES['image']['tmp_name'], FILE_BINARY); $image_name = addslashes($_FILES['image']['name']); if ($stmt->execute()) { echo "Image uploaded successfully"; } else { echo "Error: " . $mysqli->error; }
6. Borang HTML:
Borang HTML hendaklah menggunakan atribut enctype="multipart/form-data", yang membenarkan data binari dihantar dalam permintaan. Selain itu, gunakan teg penutup yang betul untuk
<form action="insert_product.php" method="POST" enctype="multipart/form-data"> <label>File:</label> <input type="file" name="image"> <input type="submit"> </form>
Atas ialah kandungan terperinci Bagaimana untuk Muat Naik Imej ke Pangkalan Data MySQL Menggunakan PHP dengan betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!