PHP 8.6.0 Beta 3 is available for testing

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

Режим доступа. При передаче в параметр mode значения w или + поток открывается для чтения и записи; иначе поток открывается только для чтения. Флаг b, которым устанавливается двоичный режим, игнорируется. Предустановленное значение "rb" открывает поток для чтения.

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

При успешном выполнении метод возвращает ресурс потока или 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([$some_id]);
$stmt->bindColumn('oid', $oid, PDO::PARAM_STR);

$stmt->fetch(PDO::FETCH_BOUND);
$stream = $db->lobOpen($oid, 'r');

header("Content-type: application/octet-stream");
fpassthru($stream);

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

Добавить

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

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