[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 メーリングリストの案内