downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

pg_lo_read_all> <pg_lo_import
[edit] Last updated: Fri, 17 May 2013

view this page in

pg_lo_open

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_openAbre um objeto grande (large object)

Descrição

resource pg_lo_open ( resource $connection , int $oid , string $mode )

pg_lo_open() abre um Objeto Grande (Large Object em inglês, daí o "lo"). O recurso (resource) encapsula informações sobre a conexão. oid especifica um oid de objeto grande válido e o parâmetro mode pode ser "r", "w" ou "rw". A função retorna FALSE se houver algum erro.

Aviso

Não feche a conexão com o banco de dados sem antes fechar a conexão com o objeto grande.

Para usar a interface de objetos grandes (lo) é necessário encapsulá-lo em um bloco de transação.

Nota:

Esta função era chamada pg_loopen().

Veja também pg_lo_close() e pg_lo_create().



add a note add a note User Contributed Notes pg_lo_open - [2 notes]
up
0
metator at netcabo dot pt
7 years ago
Just for the record, a user must be a superuser (database owner) in order to invoke pg_lo_open() (though pg_lo_create() may be invoked...). This opens a gigantic security hole in the db. If a user is not a superuser, db will raise an error with message "Can't create Large Object.".
Thus, imho, one should use pg_escape_bytea() instead.
up
-1
riccardo_ridenti at hotmail dot com
10 years ago
//INSERT FILE INTO DB
$fp = fopen($filename,"r");
        $buffer = fread($fp,filesize($filename));
    fclose($fp);
    pg_query ($conn, "begin");
    $oid = pg_lo_create ($conn);
    //echo "$oid\n";
      $rs = pg_exec($conn,"insert into table(object) values($oid);");//object field type must be "oid"
    $handle = pg_lo_open ($conn, $oid, "w");
    //echo "$handle\n";
    pg_lo_write ($handle, $buffer);
    pg_lo_close ($handle);
    pg_query ($conn, "commit"); //OR END
pg_close();

//GET BUFFER(file) FROM DB
$rs = pg_exec($conn,"select object from objects where id = xxxxxx;");
$row = pg_fetch_row($rs,0);
pg_query ($conn, "begin");
    $loid = pg_lo_open($conn,$row[0], "r");
    pg_lo_read_all ($loid);
    pg_lo_close ($loid);
pg_query ($conn, "commit"); //OR END
pg_close();

 
show source | credits | stats | sitemap | contact | advertising | mirror sites