pg_lo_seek

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

pg_lo_seek ラージオブジェクトの位置をシークする

説明

pg_lo_seek ( resource $large_object , int $offset [, int $whence = PGSQL_SEEK_CUR ] ) : bool

pg_lo_seek() はラージオブジェクトリソースの位置を シークします。

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

パラメータ

large_object

pg_lo_open() が返す PostgreSQL の ラージオブジェクト(LOB)リソース。

offset

シークするバイト数。

whence

定数 PGSQL_SEEK_SET(オブジェクトの先頭からシークする)、 PGSQL_SEEK_CUR(カレントの位置からシークする)、 あるいは PGSQL_SEEK_END(オブジェクトの最後からシークする) の中のひとつ。

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

例1 pg_lo_seek() の例

<?php
   $doc_oid 
189762345;
   
$database pg_connect("dbname=jacarta");
   
pg_query($database"begin");
   
$handle pg_lo_open($database$doc_oid"r");
   
// 最初の 50000 バイトをスキップする
   
pg_lo_seek($handle50000PGSQL_SEEK_SET);
   
// 次の 10000 バイトを読み込む
   
$data pg_lo_read($handle10000);
   
pg_query($database"commit");
   echo 
$data;
?>

変更履歴

バージョン 説明
5.6.0 PostgreSQL 9.3 以降での 64 ビットラージオブジェクトに対応しました。 これを使うには、クライアントとサーバーがいずれも PostgreSQL 9.3 以降であることと、 PHP が 64 ビット版であることが必要です。

参考

  • pg_lo_tell() - ラージオブジェクトのカレントのシーク位置を返す