代码之家  ›  专栏  ›  技术社区  ›  user7094

Kohana PHP、ORM和MySQL blobs

  •  3
  • user7094  · 技术社区  · 16 年前

    我试图通过Kohana的ORM库在mysql表中创建和检索一个blob。

    代码看起来像:

    $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查询工具提取了数据库中保存的数据,并且我可以验证数据库中的数据是否损坏,所以问题一定是在插入中。

    此外,输入的文件并不总是损坏的-较小的文件(如图像)往往是好的。

    有人有什么想法吗?

    2 回复  |  直到 13 年前
        1
  •  3
  •   user7094    16 年前

    事实证明,在本例中,我使用的是blob数据类型。

    blob数据类型以65535个字符截断数据(无提示,不会引发错误!)

    我已经把它升级到一个Mediumblob(它的最大长度为16777215个字符),而且看起来工作正常!

        2
  •  0
  •   thr    16 年前

    胡乱猜测,但是:可能是因为Kohana模型层将所有数据插入为字符数据而不是二进制数据,这会在保存/检索BLOB对象时造成麻烦。