PDO::pgsqlLOBOpen - Opens an existing large object stream
Вернуться к: PostgreSQL (PDO)
PDO::pgsqlLOBOpen
(PHP 5 >= 5.1.2, PHP 7, PECL pdo_pgsql >= 1.0.2)
PDO::pgsqlLOBOpen — Opens an existing large object stream
Описание
$oid
[, string $mode
= "rb"
] )
PDO::pgsqlLOBOpen() opens a stream to access the data
referenced by oid
. If mode
is r, the stream is opened for reading, if
mode
is w, then the stream will
be opened for writing. You can use all the usual filesystem functions,
such as fread(), fwrite() and
fgets() to manipulate the contents of the stream.
Замечание: This function, and all manipulations of the large object, must be called and carried out within a transaction.
Список параметров
-
oid
-
A large object identifier.
-
mode
-
If mode is r, open the stream for reading. If mode is w, open the stream for writing.
Возвращаемые значения
Returns a stream resource on success или FALSE
в случае возникновения ошибки.
Примеры
Пример #1 A PDO::pgsqlLOBOpen() example
Following on from the PDO::pgsqlLOBCreate() example, this code snippet retrieves the large object from the database and outputs it to the browser.
<?php
$db = new PDO('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::pgsqlLOBCreate() - Creates a new large object
- PDO::pgsqlLOBUnlink() - Deletes the large object
- pg_lo_open() - Открывает большой объект базы данных
Вернуться к: PostgreSQL (PDO)