(PHP 8 >= 8.4.0)
Pdo\Pgsql::lobOpen — Abre um fluxo de objetos grandes existente
Pdo\Pgsql::lobOpen() abre um fluxo para acessar
os dados referenciados por oid
.
Todas as funções usuais do sistema de arquivos, como fread(),
fwrite() ou fgets() podem ser usadas
para manipular o conteúdo do fluxo.
Nota: Esta função e todas as manipulações de objeto grande devem ser chamadas e executadas dentro de uma transação.
oid
mode
r
, abra o stream para leitura.
Se mode for w
, abra o fluxo para escrita.
Retorna um recurso de fluxo em caso de sucesso, ou false
em caso de falha.
Exemplo #1 Exemplo de Pdo\Pgsql::lobOpen()
Seguindo o exemplo de Pdo\Pgsql::lobCreate(), este trecho de código recupera o objeto grande do banco de dados e o envia para o navegador.
<?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);
?>