Если я использовал завивать чтобы загрузить изображение и хотите сохранить изображение в MySQL поле типа большой двоичный объект как я могу это сделать?
Обычно я бы использовал LOAD_FILE () Функция mysql для локального файла, однако в этом конкретном вопросе я не хочу специально сохранять файл на диске.
необработанные данные изображения из CURL находятся в переменной $ изображения я могу отобразить это как
echo "<img src='data:image/jpeg;base64," . base64_encode($image) . "' />";
Теперь, когда я добавляю его в базу данных, я получаю ошибку в запросах с использованием драйвера MySQL
$query = "INSERT into images ( image_blob ) VALUES ( '{$image}' )";
(обратите внимание, что я специально не использую драйвер PDO или MySQLi для этого примера)
Что мне делать в этом случае, я не смог найти ответ, поэтому я попытался с одной из следующих функций
addslashes($image)
mysql_real_escape_string($image)
bin2hex($image)
base64_encode($image)
каждый из них может решить проблему и сохранить изображение, однако какой из них является правильным в этом случае?
Постскриптум Несмотря на то, что каждая функция создает строку разной длины, я заметил, что размер файла, сообщаемый в phpMyAdmin каждый раз, один и тот же, почему это так?
Для (mysql) запросов к базе данных используйте mysql_real_escape_string ().
Они имеют одинаковый размер, поскольку для типа данных BLOB-объектов MySQL хранит фактическое содержимое BLOB-объектов внешне, а не в таблице.
Других решений пока нет …