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: Tue, 21 May 2013

view this page in

pg_lo_open

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_openApre un large object

Descrizione

resource pg_lo_open ( resource $connessione , int $oid , string $modo )

pg_lo_open() apre un Large Object e restituisce una risorsa (riferimento) large object. La risorsa incapsula le informazioni sulla connessione. oid specifica un oid valido di un large object e modo può essere "r", "w", o "rw". Restituisce FALSE se avviene un errore.

Avviso

Non chiudere la connessione al database prima di aver chiuso il large object.

Per utilizzare l'interfaccia large object (lo), occorre includere il comando in un blocco di transazione.

Nota:

Questa funzione si chiamava pg_loopen().

Vedere anche 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 | sitemap | contact | advertising | mirror sites