PDO::pgsqlLOBOpen

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

PDO::pgsqlLOBOpenAbre um fluxo de objeto grande existente

Descrição

public PDO::pgsqlLOBOpen(string $oid, string $mode = "rb"): resource|false

PDO::pgsqlLOBOpen() abre um fluxo para acessar os dados referenciados pelo oid. Se mode for igual a r, o fluxo é aberto para leitura, se mode for igual a w, o fluxo será aberto para escrita. Pode-se usar todas as funções de sistema de arquivo usuais, como, por exemplo, fread(), fwrite() e fgets(), para manipular o conteúdo do fluxo.

Note: Esta função, e todas as manipulações do objeto grande, devem ser chamadas e executadas dentro de uma transação.

Parâmetros

oid

Um identificador de objeto grande.

mode

Se for igual a r, abra o fluxo para leitura. Se for igual a w, abra o fluxo para escrita.

Valor Retornado

Retorna um recurso de fluxo em caso de sucesso ou false em caso de falha.

Exemplos

Example #1 Um exemplo de PDO::pgsqlLOBOpen()

Seguindo o exemplo de PDO::pgsqlLOBCreate(), este trecho de código recupera o objeto grande do banco de dados e o envia para o navegador.

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

Veja Também