PDO::pgsqlLOBCreate
PDO::pgsqlLOBUnlink
PostgreSQL (PDO)
PHP Manual

# PDO::pgsqlLOBOpen

(PHP 5 >= 5.1.2, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBOpen — 既存のラージオブジェクトのストリームをオープンする

### 説明

resource PDO::pgsqlLOBOpen ( string `$oid` [, string `$mode` = "rb" ] )

PDO::pgsqlLOBOpen() は、`oid` が指すデータにアクセスするためのストリームをオープンします。 `mode` が r の場合、 ストリームは読み込み用にオープンされます。 `mode` が w の場合、 ストリームは書き込み用にオープンされます。 fread()、fwrite() および fgets() のような通常のファイルシステム関数を使用して、 ストリームの内容を操作することができます。

> 注意: この関数およびラージオブジェクトに対するすべての操作は、 トランザクション内で処理される必要があります。

### パラメータ

`oid`

  ラージオブジェクトの ID。

`mode`

  モードが r の場合、読み込み用のストリームをオープンします。 モードが w の場合、書き込み用のストリームをオープンします。

### 返り値

成功した場合にストリームリソース、失敗した場合に `FALSE` を返します。

### 例

例1 PDO::pgsqlLOBOpen() の例

PDO::pgsqlLOBCreate() の例に引き続き、 このコード片はデータベースからラージオブジェクトを取得して それをブラウザに出力します。

`<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$stmt = $db->prepare("select oid from BLOBS where ident = ?");
$stmt->execute(array($some_id));
$stmt->bindColumn('oid', $lob, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);
fpassthru($lob);
?>`

### 参考

- PDO::pgsqlLOBCreate() - 新しいラージオブジェクトを作成する
- PDO::pgsqlLOBUnlink() - ラージオブジェクトを削除する
- pg_lo_open() - ラージオブジェクトをオープンする

PDO::pgsqlLOBCreate
PDO::pgsqlLOBUnlink
PostgreSQL (PDO)
PHP Manual