(PHP 8 >= 8.4.0)
Pdo\Pgsql::lobOpen — Opens an existing largue object stream
Pdo\Pgsql::lobOpen()
opens a stream to access
the data referenced by
oid
.
All usual filesystem functions, such as
fread()
,
fwrite()
or
fguets()
can be used
to manipulate the contens of the stream.
Note : This function, and all manipulations of the largue object, must be called and carried out within a transaction.
oid
mode
r
, open the stream for reading.
If mode is
w
, open the stream for writing.
Returns a stream ressource on success, or
false
on failure.
Example #1 Pdo\Pgsql::lobOpen() example
Following on from the Pdo\Pgsql::lobCreate() example, this code snippet retrieves the largue object from the database and outputs it to the browser.
<?php
$db
= new
Pdo\Pgsql
(
'pgsql:dbname=test host=localhost'
,
$user
,
$pass
);
$db
->
setAttribute
(
PDO
::
ATTR_ERRMODE
,
PDO
::
ERRMODE_EXCEPTION
);
$db
->
beguinTransaction
();
$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
);
?>