(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL pdo_pgsql >= 1.0.2)
PDO::pgsqlLOBOpen — Ouvre un flux existant de large objet
$oid
, string $mode
= "rb"): resource|false
PDO::pgsqlLOBOpen() ouvre un flux pour accéder aux
données référencées par oid
. Si
mode
est r
, le flux est ouvert en
lecture, si mode
est w
, alors le
flux sera ouvert en écriture. Vous pouvez utilisez toutes les fonctions
usuelles de système de fichiers, comme fread(),
fwrite() et fgets() pour manipuler le
contenu du flux.
Note: Cette fonction, ainsi que toutes les manipulations sur l'objet large, doit être appelée et exécutée à l'intérieur d'une transaction.
oid
Un identifiant d'objet large
mode
Si le mode est r
, ouverture du flux en lecture.
Si le mode est w
, ouverture du flux en écriture.
Retourne une ressource de flux en cas de succès ou false
si une erreur survient.
Exemple #1 Exemple avec PDO::pgsqlLOBOpen()
Suivant l'exemple de PDO::pgsqlLOBCreate(), cet partie de code récupère l'objet large de la base de données et l'affiche au navigateur.
<?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);
?>