pg_lo_open

ラージオブジェクトをオープンする

説明

PgSql\Lobfalse pg_lo_open(PgSql\Connection $connection, int $oid, string $mode)

pg_lo_open はデータベース内にラージオブジェクトを オープンし、それを操作するための PgSql\Lob クラスのインスタンスを返します。

警告

PgSql\Lob のインスタンスを閉じる前にデータベースへの接続を 閉じないでください。

ラージオブジェクトインターフェイスは、トランザクションブロックの中で 使用する必要があります。

注意:

この関数は、以前は pg_loopen と呼ばれていました。

パラメータ

connection

PgSql\Connection クラスのインスタンス。 connection が指定されない場合は、デフォルトの接続を使います。 デフォルトの接続とは、pg_connect または pg_pconnect によって確立された直近の接続です。

警告

PHP 8.1.0 以降では、デフォルトの接続を使うことは推奨されなくなりました。

oid

データベース内のラージオブジェクトの OID

mode

読み込み専用の "r"、書き込み専用の "w"、読み書き可能な "rw" のいずれか。

戻り値

PgSql\Lob クラスのインスタンスを返します。 失敗した場合に false を返します

変更履歴

バージョン 説明
8.1.0 PgSql\Lob クラスのインスタンスを返すようになりました。 これより前のバージョンでは、リソース を返していました。
8.1.0 connection は、PgSql\Connection クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、リソース を期待していました。

例1 pg_lo_open の例

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   echo "$oid\n";
   $handle = pg_lo_open($database, $oid, "w");
   echo "$handle\n";
   pg_lo_write($handle, "large object data");
   pg_lo_close($handle);
   pg_query($database, "commit");
?>

参考

  • pg_lo_close
  • pg_lo_create