Pdo\Pgsql::lobOpen

(PHP 8 >= 8.4.0)

Pdo\Pgsql::lobOpen — Ouvre un flux sur un objet large existant

Description

public function Pdo\Pgsql::lobOpen(string $oid, string $mode = "rb"): resource|false

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.

Liste de paramĂštres

oid
Un identifiant d'objet large.
mode
Si le mode est r, ouvre le flux en lecture. Si le mode est w, ouvre le flux en écriture.

Valeurs de retour

Renvoie une ressource de flux en cas de succĂšs, ou false si une erreur survient

Exemples

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);
?>

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.