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

# Pdo\Pgsql::lobOpen

(PHP 8 >= 8.4.0)

Pdo\Pgsql::lobOpen — Открывает поток для существующего большого объекта

### Описание

public function Pdo\Pgsql::lobOpen(string `$oid`, string `$mode` = "rb"): resource|false

Метод Pdo\Pgsql::lobOpen() открывает поток для доступа к данным, на которые ссылается `oid`. Для работы с содержимым потока можно использовать все обычные функции файловой системы, такие как функция fread(), fwrite() или fgets().

> Замечание: Функция и все манипуляции с большим объектом должны вызываться и выполняться в рамках транзакции.

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

`oid`
  Идентификатор большого объекта.
`mode`
  Если указано значение `r`, поток открывается для чтения. Если указано значение `w`, поток открывается для записи.

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

Метод возвращает ресурс потока в случае успешного выполнения или `false`, если возникла ошибка.

### Примеры

Пример #1 Пример использования метода Pdo\Pgsql::lobOpen()

Продолжая пример метода Pdo\Pgsql::lobCreate(), этот фрагмент кода извлекает большой объект из базы данных и выводит его в браузер.

    <?php
    $db = new Pdo\Pgsql('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', $oid, PDO::PARAM_STR);
    $stmt->fetch(PDO::FETCH_BOUND);
    $stream = $db->pgsqlLOBOpen($oid, 'r');
    header("Content-type: application/octet-stream");
    fpassthru($stream);
    ?>

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

- Pdo\Pgsql::lobCreate() - Создает новый большой объект (LOB)
- Pdo\Pgsql::lobUnlink() - Удаляет большой объект
- pg_lo_create() - Создаёт большой объект
- pg_lo_open() - Открывает большой объект базы данных

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open