update page now
PHP 8.5.4 Released!

pg_lo_create

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_createCria um objeto grande

Descrição

pg_lo_create(PgSql\Connection $connection = ?, mixed $object_id = ?): int
pg_lo_create(mixed $object_id): int

pg_lo_create() cria um objeto grande e retorna o OID do objeto grande. Os modos de acesso do PostgreSQL INV_READ e INV_WRITE não são suportados, o objeto é criado sempre com acesso de leitura e gravação.

Para usar a interface de objeto grande, é necessário incluí-la em um bloco de transação.

Em vez de usar a interface de objeto grande (que não tem controles de acesso e é complicada de usar), experimente o tipo de coluna bytea e pg_escape_bytea() do PostgreSQL.

Nota:

Esta função costumava ser chamada de pg_locreate().

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão foi descontinuado.

object_id

Se um object_id for fornecido, a função tentará criar um objeto grande com este id, caso contrário, um id de objeto livre será atribuído pelo servidor.

Valor Retornado

Um objeto grande OID, ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.1.0 O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de pg_lo_create()

<?php
$database
= pg_connect("dbname=jacarta");
pg_query($database, "begin");
$oid = pg_lo_create($database);
echo
"$oid\n";
$handle = pg_lo_open($database, $oid, "w");
echo
"$handle\n";
pg_lo_write($handle, "large object data");
pg_lo_close($handle);
pg_query($database, "commit");
?>

adicionar nota

Notas de Usuários 1 note

up
0
andrea dot galli at acotel dot com
22 years ago
<?php
// --------- OPEN CONN ---

   $conn = pg_connect("host='127.0.0.1' dbname='test' user='usertest' password='passtest'");

// --------- OPEN FILE ---

   $fp = fopen('logo.gif', "r");
   $buffer = fread($fp, filesize('logo.gif'));
   fclose($fp);

// --------- CREATE - INSERT OID ---

   pg_exec($conn, "begin");

   $oid = pg_locreate($conn);

   $rs = pg_exec($conn,"INSERT INTO test(tipo, images) VALUES('A1', $oid);");
   $handle = pg_loopen ($conn, $oid, "w");

   pg_lowrite ($handle, $buffer);
   pg_loclose ($handle);

   pg_exec($conn, "commit");

// --------- OPEN - INSERT OID ---

   $rs = pg_exec($conn, "SELECT images FROM test WHERE tipo = 'A1';");
   $row = pg_fetch_row($rs, 0);

   pg_exec($conn, "begin");
   $loid = pg_loopen($conn, $row[0], "r");

   header("Content-type: image/gif");

   pg_loreadall($loid);
   pg_loclose($loid);

   pg_exec ($conn, "commit");

// --------- UNLINK OID ---

   pg_exec($conn, "begin");

   $loid = $row[0];
   pg_lounlink($conn, $loid);

   pg_exec ($conn, "commit");

// --------- DELETE OID ---

   pg_exec($conn, "DELETE FROM test WHERE tipo = 'A1';");

// --------- CLOSE CONN ---

   pg_close();
?>
To Top