Pertama, Anda harus memeriksa apakah kolom gambar Anda bertipe BLOB !
Saya tidak tahu apa-apa tentang tabel SQL Anda, tetapi jika saya akan mencoba membuat tabel saya sendiri sebagai contoh.
Kami mendapatkan bidang id
(int), image
(gumpalan) dan image_name
(varchar(64)).
Jadi kodenya akan terlihat seperti ini (anggap ID selalu '1' dan mari gunakan mysql_query ini):
$image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); //SQL Injection defence!
$image_name = addslashes($_FILES['image']['name']);
$sql = "INSERT INTO `product_images` (`id`, `image`, `image_name`) VALUES ('1', '{$image}', '{$image_name}')";
if (!mysql_query($sql)) { // Error handling
echo "Something went wrong! :(";
}
Anda melakukan kesalahan dalam banyak hal. Jangan gunakan fungsi mysql - mereka tidak digunakan lagi! Gunakan PDO atau MySQLi . Anda juga harus mempertimbangkan untuk menyimpan lokasi file di disk. Menggunakan MySQL untuk menyimpan gambar dianggap sebagai Ide Buruk™. Menangani tabel SQL dengan data besar seperti gambar bisa menjadi masalah.
Juga formulir HTML Anda di luar standar. Seharusnya terlihat seperti ini:
<form action="insert_product.php" method="POST" enctype="multipart/form-data">
<label>File: </label><input type="file" name="image" />
<input type="submit" />
</form>
Catatan sampingan:
Saat menangani file dan menyimpannya sebagai BLOB, data harus di-escape menggunakan mysql_real_escape_string()
, jika tidak maka akan mengakibatkan kesalahan sintaks.