PHP Conference Nagoya 2025

pg_lo_read

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_readラージオブジェクトを読み込む

説明

pg_lo_read(PgSql\Lob $lob, int $length = 8192): string|false

pg_lo_read()は、ラージオブジェクトから最大 length バイト分読み込み、文字列として返します。

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

注意:

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

パラメータ

lob

pg_lo_open() が返した PgSql\Lob クラスのインスタンス。

length

返すデータの最大バイト数(オプション)。

戻り値

ラージオブジェクトから length バイトのデータを 文字列で返します。エラー時には false を返します。

変更履歴

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

例1 pg_lo_read() の例

<?php
$doc_oid
= 189762345;
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$handle = pg_lo_open($database, $doc_oid, "r");
$data = pg_lo_read($handle, 50000);
pg_query($database, "commit");
echo
$data;
?>

参考

  • pg_lo_read_all() - ラージオブジェクト全体を読み込みブラウザに直接送信する

add a note

User Contributed Notes 1 note

up
-2
bobahspb at gmail dot com
13 years ago
Be careful: pg_lo_export() create empty file without "begin"/"end".
See docs: "...it is necessary to enclose it within a transaction block..."
To Top