[pgsql-jp: 30696] Re: PHPの「pg_lo_import() 」を使用して\lo_export するとファイルサイズが異なる
Tatsuo Ishii
t-ishii @ sra.co.jp
2003年 8月 6日 (水) 10:07:42 JST
石井です.
> 環境
> OS TurboLinux 8.0
> Apatch 2.0
> PHP4
> PostgreSQL7.3
>
> テーブルmst
> id integer型 主キー
> loid oid型
> です。
>
> PHPのpg_lo_import()を用いてファイルをインポートし、
> psqlで\lo_exportすると、ファイルサイズが異なる現象が発生しました。
> pg_lo_import()する直前にファイルサイズが正しい事を確認(stat())し、
> インポート(idはユニークですが、サンプルの為固定値にしました。)
>
> $ret = stat( "/tmp/sample.gif" );
> echo( "size =" . $ret[ 'size ' ] );
> pg_query( "BEGIN" );
> $lo_id = pg_lo_import( "/tmp/sample.gif" );
> pg_query( "COMMIT" );
> pg_query( "insert table mst ( id, loid ) values ( 1, " .
> " " . $lo_id . " )" );
[略]
pg_lo_import()は私も何度も使っていますが,少なくともPHP4+Apache 1.3.x
では問題なく動作しています.気になる点は2つ.
(1) Apache 2.0であること.Apache 2+PHP4 での動作は保障されていないと思
います.Apache 1.3.28ならどうなりますか?
(2) pg_query( "BEGIN" )や pg_lo_import( "/tmp/sample.gif" )のように,
にDBへの接続リソースを省略した呼び出し方法になっていること.
pg_query($con, "BEGIN" );や pg_lo_import($con, "/tmp/sample.gif"
);のようにしたらどうなるでしょう?
--
Tatsuo Ishii
pgsql-jp メーリングリストの案内