PDO::pgsqlLOBOpen
Открывает поток для существующего большого объекта
&reftitle.description;
public resourcefalsePDO::pgsqlLOBOpen
stringoid
stringmode"rb"
Функция PDO::pgsqlLOBOpen открывает поток к
большому объекту (LOB) заданному с помощью oid.
Если mode задан как r, поток открывается
для чтения. Если mode задан как w, то
для записи. Для манипуляции с потоком вы можете использовать обычные файловые
функции, такие как fread, fwrite и
fgets.
Эта функция и все манипуляции с LOB должны совершаться в транзакции.
&reftitle.parameters;
oid
Идентификатор большого объекта.
mode
Если r, то поток открывается на чтение.
Если w, то поток открывается на запись.
&reftitle.returnvalues;
Возвращает ресурс потока в случае успешного выполнения&return.falseforfailure;.
&reftitle.examples;
Пример использования PDO::pgsqlLOBOpen
Продолжая пример из описания PDO::pgsqlLOBCreate,
этот код извлекает LOB из БД и выводит его в браузер.
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', $oid, PDO::PARAM_STR);
$stmt->fetch(PDO::FETCH_BOUND);
$stream = $db->pgsqlLOBOpen($oid, 'r');
header("Content-type: application/octet-stream");
fpassthru($stream);
?>
]]>
&reftitle.seealso;
PDO::pgsqlLOBCreate
PDO::pgsqlLOBUnlink
pg_lo_open