Приношу свои извинения, что это не прямой ответ на ваш вопрос, но я хотел бы предположить, что ваш подход не самый лучший - до такой степени, что я советую вам отказаться от него, если вы можете.
Сохранение данных изображения в базе данных возможно, но это одна из тех вещей, которые вы МОЖЕТЕ делать, но не должны. Если ваш сценарий видит даже умеренное использование, ваша база данных может быстро стать большой и громоздкой. Особенно при плохих или отсутствующих индексах вы можете ожидать снижения производительности вашей базы данных, поскольку размер таблицы увеличивается с каждой добавленной записью.
В дополнение к размеру базы данных, существует дополнительная сложность обслуживания кода, который может извлекать данные изображения и выводить их способом, который может использоваться клиентом. Вы не сможете просто print
данных, вам придется отправлять заголовки, чтобы указать, что это изображение, что означает отдельный скрипт, дополнительные запросы http и дополнительный вызов базы данных.
Повсюду, это плохой метод для использования. Вы намного лучше записываете файл на диск, затем сохраняете путь в виде строки в базе данных, что, я мог бы добавить, гораздо проще сделать с точки зрения кода. Также бесконечно проще использовать данные позже.
Удачи!
EDIT
Попробуйте исправить свой текущий код, кстати:
$instr = fopen($_FILES['image']['tmp_name'],"rb");
$image = addslashes(fread($instr,filesize($_FILES['image']['tmp_name'])));
mysqli_query($dbc, 'INSERT INTO product_images (product_id, mime, image)
VALUES ("'.$clean['last_product_id'].'", "'.$clean['mime'].'", "'.$image.'")';