PHP 8.4.2 Released!

Pdo\Pgsql::lobOpen

(PHP 8 >= 8.4.0)

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

Описание

public 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);
?>

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

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top