[PHP-users 15493]PHP4.3との連携でBLOB型

ogiso @ isquare.co.jp ogiso @ isquare.co.jp
2003年 5月 27日 (火) 11:21:27 JST


小木曽といいます。初めて投稿させていただきます。

RedHat 7.3
PHP4.3.1
Apache1.3.27
FireBird1.0の組み合わせで
開発をしています。


BLOB型のカラムにテキストデータをを挿入したいのですが、
挿入したデータが途中で切れてしまいます。

コードはこんな感じです。

テーブル定義

CREATE TABLE "M_TEST_BLOB"
(
  "id"      INTEGER,
  "blob"    BLOB SUB_TYPE TEXT SEGMENT SIZE 80 CHARACTER SET SJIS_0208
);

PHP該当ソース


$trans = ibase_trans($conn);

$blob_id = ibase_blob_create($trans);

$string=<<<EOSTR
ここに4000行ほどのテキストデータ(システムログです。)
EOSTR;

print $string;

ibase_blob_add($blob_id,$string);

$blob_id_str = ibase_blob_close($blob_id);

ibase_query($trans,'INSERT INTO m_test_blob ("id","blob") VALUES (1,?)',
$blob_id_str);

$commit = ibase_commit($trans);

これで、プリント文では最後まで表示されますが、DBに挿入されているデータは途
中で切れています。
切れているところは特に特殊な文字列というわけでもないですし,インサートされて
いるデータをテキストに展開して
サイズを調べてみても特に決まったサイズで切れているわけではないためサイズの
制限のようなものに
引っかかっているわけでもなさそうです。(25KB〜50KBぐらいまでばらつきがあ
る。)

php4.2.3でも試しましたが同様の症状が出ます。

これはDBがInterBaseではなくFireBirdを使ったときの固有の問題なのでしょうか?
それともどこか設定などで回避できるものでしょうか?


ちなみにPHPのメーリングリストにも同じ内容で投稿させていただきましたが、情報
が得られず困っております。
少しでも手がかりが欲しくて申し訳ないとは思いましたがこちらのメーリングリス
トに投稿させていただきました。
よろしくお願いします。


--

Ayumu Ogiso





PHP-users メーリングリストの案内