Първо, трябва да проверите дали вашата колона с изображение е тип BLOB !
Не знам нищо за вашата SQL таблица, но ако се опитам да направя моя собствена като пример.
Имаме полета id
(int), image
(blob) и image_name
(varchar(64)).
Така че кодът трябва да изглежда така (да приемем, че ID винаги е '1' и нека използваме тази mysql_query):
$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! :(";
}
Правите го погрешно по много начини. Не използвайте mysql функции - те са отхвърлени! Използвайте PDO или MySQLi . Трябва също да помислите за съхраняване на местоположения на файлове на диск. Използването на MySQL за съхранение на изображения се смята за лоша идея™. Обработката на SQL таблица с големи данни като изображения може да бъде проблематична.
Също така вашият HTML формуляр е извън стандартите. Трябва да изглежда така:
<form action="insert_product.php" method="POST" enctype="multipart/form-data">
<label>File: </label><input type="file" name="image" />
<input type="submit" />
</form>
Странична бележка:
Когато работите с файлове и ги съхранявате като BLOB, данните трябва да бъдат екранирани с помощта на mysql_real_escape_string()
, в противен случай това ще доведе до синтактична грешка.