PDO::pgsqlLOBOpen

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

PDO::pgsqlLOBOpenОткрывает поток для существующего большого объекта

Описание

public PDO::pgsqlLOBOpen ( string $oid , string $mode = "rb" ) : resource|false

Функция PDO::pgsqlLOBOpen() открывает поток к большому объекту (LOB) заданному с помощью oid. Если mode задан как r, поток открывается для чтения. Если mode задан как w, то для записи. Для манипуляции с потоком вы можете использовать обычные файловые функции, такие как fread(), fwrite() и fgets().

Замечание: Эта функция и все манипуляции с LOB должны совершаться в транзакции.

Список параметров

oid

Идентификатор большого объекта.

mode

Если r, то поток открывается на чтение. Если w, то поток открывается на запись.

Возвращаемые значения

Возвращает ресурс потока в случае успеха или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования PDO::pgsqlLOBOpen()

Продолжая пример из описания PDO::pgsqlLOBCreate(), этот код извлекает LOB из БД и выводит его в браузер.

<?php
$db 
= new PDO('pgsql:dbname=test host=localhost'$user$pass);
$db->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$stmt $db->prepare("select oid from BLOBS where ident = ?");
$stmt->execute(array($some_id));
$stmt->bindColumn('oid'$oidPDO::PARAM_STR);
$stmt->fetch(PDO::FETCH_BOUND);
$stream $db->pgsqlLOBOpen($oid'r');
header("Content-type: application/octet-stream");
fpassthru($stream);
?>

Смотрите также