PDO::pgsqlLOBOpen
(PHP 5 >= 5.1.2, PECL pdo_pgsql >= 1.0.2)
PDO::pgsqlLOBOpen — Abre un flujo de un objeto grande existente
Descripción
$oid
[, string $mode = "rb"
] )
PDO::pgsqlLOBOpen() obre un flujo para acceder a los datos
a los que hace referencia oid. Si mode
es r, el flujo será abierto para lectura; si
mode es w, el flujo será
abierto para escritura. Se pueden utilizar todas las funciones de sistema de ficheros usuales,
tales como fread(), fwrite() y
fgets(), para manipular el contenido del flujo.
Nota: Esta función, y todas las manipulaciones del objeto grande, debe ser invocada y realizada dentro de una transacción.
Parámetros
-
oid -
Un identificador de objeto grande.
-
mode -
Si el modo es r, se abre el flujo para lectura. Si el modo es w, se abre el flujo para escritura.
Valores devueltos
Devuelve un recurso de flujo en caso de éxito o FALSE en caso de error.
Ejemplos
Ejemplo #1 Un ejemplo de PDO::pgsqlLOBOpen()
Siguiendo el ejemplo de PDO::pgsqlLOBCreate(), este trozo de código recupera el objeto grande de la base de datos y lo envía al navegador.
<?php
$bd = new PDO('pgsql:dbname=test host=localhost', $usuario, $contraseña);
$bd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$bd->beginTransaction();
$sentencia = $bd->prepare("select oid from BLOBS where ident = ?");
$sentencia->execute(array($some_id));
$sentencia->bindColumn('oid', $oid, PDO::PARAM_STR);
$sentencia->fetch(PDO::FETCH_BOUND);
$flujo = $bd->pgsqlLOBOpen($oid, 'r');
header("Content-type: application/octet-stream");
fpassthru($flujo);
?>
Ver también
- PDO::pgsqlLOBCreate() - Crea un nuevo objeto grande
- PDO::pgsqlLOBUnlink() - Elimina un objeto grande
- pg_lo_open() - Open a large object