pg_lo_create
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
pg_lo_create — Erzeugt ein Large Object
Beschreibung
pg_lo_create() erzeugt ein Large Object und gibt dessen
OID zurück. Die INV_READ
-,
INV_WRITE
- und
INV_ARCHIVE
-Zugriffsmodi von PostgreSQL werden nicht
unterstützt. Ein Large Object wird immer mit Lese- und Schreibzugriff erzeugt.
INV_ARCHIVE
wurde aus PostgreSQL (ab Version 6.3 und
höher) entfernt.
Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.
Anstelle der Large-Object-Schnittstelle (für die es keine Zugriffssteuerung gibt und deren Benutzung etwas schwerfällig ist) können Sie den PostgreSQL-Datentyp bytea und die Funktion pg_escape_bytea() benutzen.
Hinweis:
Diese Funktion ersetzt die Funktion pg_locreate().
Parameter-Liste
-
connection
-
Eine PgSql\Connection-Instanz. Falls
connection
nicht angegeben wurde, wird die Standardverbindung benutzt. Das ist die zuletzt mit pg_connect() oder pg_pconnect() aufgebaute Verbindung.WarnungSeit PHP 8.1.0 ist die Verwendung der Standardverbindung veraltet.
-
object_id
-
Wenn es einen Parameter
object_id
gibt, wird diese Funktion versuchen, ein Large Object mit dieser ID zu erzeugen. Anderenfalls wird dem Large Object vom Server eine freie ID zugewiesen. Dieser Parameter basiert auf Funktionalitäten, die seit PostgreSQL 8.1 implementiert sind.
Rückgabewerte
Ein Large Object OID. Bei einem Fehler wird false
zurückgegeben.
Changelog
Version | Beschreibung |
---|---|
8.1.0 |
Der Parameter connection erwartet nun eine PgSql\Connection-Instanz;
vorher wurde eine Ressource erwartet.
|
Beispiele
Beispiel #1 pg_lo_create()-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 fuer das Large Object");
pg_lo_close($handle);
pg_query($database, "commit");
?>