Кохана PHP, ORM и MySQL BLOB - PullRequest
       13

Кохана PHP, ORM и MySQL BLOB

3 голосов
/ 13 октября 2008

Я пытаюсь создать и извлечь BLOB в таблице MySQL с помощью библиотеки ORM Коханы.

Код выглядит примерно так:

$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 .

Кроме того, введенные файлы не всегда повреждены - файлы меньшего размера (например, изображения), как правило, в порядке.

У кого-нибудь есть идеи?

Ответы [ 2 ]

3 голосов
/ 13 октября 2008

Оказывается, в данном случае я использовал тип данных BLOB.

Тип данных BLOB усекает данные до 65535 символов (без вывода сообщений об ошибке!)

Я поднял его до MEDIUMBLOB (максимальная длина которого 16777215 символов), и похоже, что он работает нормально!

0 голосов
/ 13 октября 2008

Неверное предположение, но: вероятно, потому что слой модели Кохана вставляет все данные в виде символьных данных вместо двоичных, что вызовет проблемы при сохранении / получении объектов BLOB.

...