PHP: pg_lo_open - Manual

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

search for in the

pg_lo_read_all pg_lo_import

Last updated: Sat, 27 Jan 2007

view this page in

# pg_lo_open

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_open -- Open a large object

## Описание

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

pg_lo_open() opens a large object in the database and returns large object resource so that it can be manipulated.

Внимание
Do not close the database connection before closing the large object resource.

To use the large object interface, it is necessary to enclose it within a transaction block.

> Замечание: This function used to be called pg_loopen().

## Список параметров

`connection`

  PostgreSQL database connection resource. When `connection` is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

`oid`

  The `OID` of the large object in the database.

`mode`

  Can be either "r" for read-only, "w" for write only or "rw" for read and write.

## Возвращаемые значения

A large object resource or `FALSE` on error.

## Примеры

Пример 1. pg_lo_open() example

`<?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");
?>`

## Смотрите также

pg_lo_close()
pg_lo_create()

add a note User Contributed Notes
pg_lo_open
metator at netcabo dot pt
29-Aug-2005 11:15
`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.`
riccardo_ridenti at hotmail dot com
24-Oct-2002 03:49
`//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();`
add a note
pg_lo_read_all pg_lo_import

Last updated: Sat, 27 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 10:36:09 2007 PST