PDO::pgsqlLOBOpen
(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL pdo_pgsql >= 1.0.2)
PDO::pgsqlLOBOpen — Abre um fluxo de objeto grande existente
Descrição
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 aw
, 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
- PDO::pgsqlLOBCreate() - Cria um novo objeto grande
- PDO::pgsqlLOBUnlink() - Remove o objeto grande
- pg_lo_open() - Abra um objeto grande