pg_lo_open

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

pg_lo_openÖffnet ein Large Object

Beschreibung

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

pg_lo_open() öffnet ein Large Object in einer Datenbank und gibt einen Handler (eine Ressource) zurück, über den das Large Object modifiziert werden kann.

Warnung

Bevor die Datenbankverbindung geschlossen wird, muss das Large Object wieder geschlossen werden.

Um die Large Object- (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Hinweis:

Diese Funktion ersetzt die Funktion pg_loopen().

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

oid

Die OID des Large Objects in der Datenbank.

mode

Dies kann entweder "r" für nur lesen, "w" für nur schreiben oder "rw" für lesen und schreiben sein.

Rückgabewerte

Eine Large Object Ressource oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 pg_lo_open()-Beispiel

<?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"Daten des Large Objects");
   
pg_lo_close($handle);
   
pg_query($database"commit");
?>

Siehe auch

add a note add a note

User Contributed Notes 1 note

up
1
metator at netcabo dot pt
18 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.
To Top