Я пытаюсь создать и получить BLOB-объект в таблице MySQL через библиотеку ORM Kohana.
Код выглядит примерно так:
$attachment = new Attachment_Model();
$attachment->name = $info['FileName'];
$attachment->size = strlen($info['Data']);
$attachment->data = $info['Data'];
$attachment->mime_type = $info['content-type'];
$attachment->save();
Я проверил, что данные на данный момент в порядке, выведя их в файл. Однако, когда я извлекаю данные, они оказываются поврежденными. Мне удалось сузить это немного больше - я использовал инструмент запросов MySQL для извлечения данных, хранящихся в базе данных, и я могу проверить, что данные в базе данных повреждены, поэтому проблема должна быть в INSERT .
Кроме того, введенные файлы не всегда повреждены - файлы меньшего размера (например, изображения), как правило, подходят.
У кого-нибудь есть идеи?






Дикое предположение, но: вероятно, потому что слой модели коханы вставляет все данные как символьные, а не двоичные, что вызовет проблемы при сохранении / извлечении объектов BLOB.
Оказывается, в этом случае я использовал тип данных BLOB.
Тип данных BLOB усекает данные до 65535 символов (без вывода сообщений об ошибке!)
Я увеличил его до MEDIUMBLOB (максимальная длина которого составляет 16777215 символов), и, похоже, он работает нормально!