(PHP 8 >= 8.4.0)
Pdo\Pgsql::lobOpen — Ouvre un flux sur un objet large existant
Pdo\Pgsql::lobOpen() ouvre un flux pour accéder
aux données référencées par oid.
Toutes les fonctions de système de fichiers habituelles, telles que fread(),
fwrite() ou fgets() peuvent être utilisées
pour manipuler le contenu du flux.
Note: Cette fonction, et toutes les manipulations de l'objet large, doivent être appelées et effectuées dans une transaction.
oidmoder, ouvre le flux en lecture.
Si le mode est w, ouvre le flux en écriture.
Renvoie une ressource de flux en cas de succès, ou false si une erreur survient
Exemple #1 Exemple de Pdo\Pgsql::lobOpen()
D'après l'exemple de Pdo\Pgsql::lobCreate(), ce code extrait l'objet large de la base de données et le renvoie au navigateur.
<?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);
?>