(PHP 4 >= 4.2.0, PHP 5)
pg_lo_import — Importiert ein Large Object aus einer Datei
pg_lo_import() erzeugt aus einer Datei im Dateisystem als Datenquelle ein neues Large Object in der Datenbank.
Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.
Hinweis: Wenn Safe Mode aktiviert ist, überprüft PHP, ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst.
Hinweis:
Diese Funktion ersetzt die Funktion pg_loimport().
PostgreSQL Verbindungskennung. Wenn connection nicht angegeben ist, wird die zuletzt von pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.
Der vollständige Pfad- und Dateiname der Datei im lokalen Dateisystem des Clients, aus der die Daten des Large Objects gelesen werden.
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 steht seit PHP 5.3 zur Verfügung und basiert auf Funktionalitäten, die seit PostgreSQL 8.1 implementiert sind.
Der OID des neu erzeugten Large Objects oder FALSE, wenn ein Fehler auftrat.
Version | Beschreibung |
---|---|
5.3.0 | Der optionale Parameter object_id wurde zugefügt. |
4.2.0 | Die Syntax dieser Funktion wurde geändert. Früher galt:
int pg_lo_import
( string $pathname
[, resource $connection
] )
|
Beispiel #1 pg_lo_import() Beispiel
<?php
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$oid = pg_lo_import($database, '/tmp/lob.dat');
pg_query($database, "commit");
?>
its not very clear if pg_lo_import needs to have pg_lo_open called first. Because pg_lo_import handles the process of writign to the file, it seems logical that pg_lo_open does not need to be called. However due to the ugly nature of how postgres handles oid objects, it would be nice to have this documented.
Due to a bug, OLD API does not available with PHP 4.2.0 and 4.2.1.
PHP 4.2.2 will support OLD API again and will be kept long enough.
New API will be available PHP 4.2.0 to later versions.
Due to a bug, PHP 4.2.0 and 4.2.1 does not support pg_lo_import() old API. It's fixed in PHP 4.2.2.
BTW, new API will be always available from PHP 4.2.0 to later versions. Older API will be kept long enough, also.
it works for me (php-4.2.1)
not like this
int pg_lo_import ( string pathname [, resource connection])
but
int pg_lo_import ( resource connection, string pathname )
don't know the reason