Mam's WebSite
建築CGパース住宅CGパース

Mamの覚書Q&A検索

トップページMamの覚書Q&A検索PHP(PostgreSQL)⇒Q&A


大項目:「 PHP 」 - 中項目:「 PostgreSQL 」

「 phpからpostgresqlにラージオブジェクトを書き込むとエラー 」

以下のPHPソースで書き込むとpg_lo_writeでエラーが出ます。何故ですか?
<?php
   $con = pg_connect ("dbname=testdb");
    pg_exec ($con, "begin");
    $oid = pg_lo_create ($con);
    print $oid."\n";
    $h = pg_lo_open ($con, $oid, "w");
    print $h."\n";
    pg_lo_write ($h, "large object data");
    pg_lo_close ($h);
    pg_exec ($con, "commit");
?>


回答

バージョンによると思うのですが、
ソースコード上で省略可能な引数を省略した場合に何故かエラーが表示されるようです。
ソースコードで、
 
    pg_lo_write ($h, "large object data");
    pg_lo_close ($h);
 
を以下↓のソースコードにしてみてください。私はこれで動きました。
 
    pg_lo_write ($con, $h, "large object data");
    pg_lo_close ($con, $h);
 
第1引数(有効なデータベース接続)は省略可能なはずなのですが、何故かエラーが表示されることがあるようです。
いずれにせよPHP又はPostgreSQLのバージョンによるのだと思います。

ソース


Mam's WebSite