PDO::pgsqlLOBOpen

(PHP 5 >= 5.1.2, PHP 7, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBOpenAbrir un flujo de un objeto grande existente

Descripción

public PDO::pgsqlLOBOpen ( string $oid [, string $mode = "rb" ] ) : resource

PDO::pgsqlLOBOpen() abre 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_ERRMODEPDO::ERRMODE_EXCEPTION);
$bd->beginTransaction();
$sentencia $bd->prepare("select oid from BLOBS where ident = ?");
$sentencia->execute(array($some_id));
$sentencia->bindColumn('oid'$oidPDO::PARAM_STR);
$sentencia->fetch(PDO::FETCH_BOUND);
$flujo $bd->pgsqlLOBOpen($oid'r');
header("Content-type: application/octet-stream");
fpassthru($flujo);
?>

Ver también