Kohana PHP、ORMおよびMySQL BLOB
質問
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クエリツールを使用して抽出し、データベース内のデータが破損していることを確認できるため、INSERTに問題がある必要があります。
また、入力されたファイルが常に破損しているわけではありません-小さいファイル(画像など)でも問題はありません。
アイデアはありますか?
解決
この場合、BLOBデータ型を使用していたことがわかりました。
BLOBデータ型は、データを65535文字で切り捨てます(エラーをスローせずに黙って!)
MEDIUMBLOB(最大長は16777215文字)にアップグレードしましたが、うまくいくようです!
他のヒント
ワイルドな推測ですが、おそらくkohanaモデルレイヤーがすべてのデータをバイナリではなく文字データとして挿入するため、BLOBオブジェクトの保存/取得時に問題が発生する可能性があります。
所属していません StackOverflow