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.
pg_lo_import
(PHP 4 >= 4.2.0, PHP 5)
pg_lo_import — Importiert ein Large Object aus einer Datei
Beschreibung
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().
Parameter-Liste
-
connection -
PostgreSQL Verbindungskennung. Wenn
connectionnicht angegeben ist, wird die zuletzt von pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt. -
pathname -
Der vollständige Pfad- und Dateiname der Datei im lokalen Dateisystem des Clients, aus der die Daten des Large Objects gelesen werden.
-
object_id -
Wenn es einen Parameter
object_idgibt, 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.
Rückgabewerte
Der OID des neu erzeugten Large Objects oder
FALSE, wenn ein Fehler auftrat.
Changelog
| Version | Beschreibung |
|---|---|
| 5.3.0 |
Der optionale Parameter |
| 4.2.0 | Die Syntax dieser Funktion wurde geändert. Früher galt:
int pg_lo_import
( string
$pathname
[, resource $connection
] ) |
Beispiele
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");
?>
Siehe auch
- pg_lo_export() - Exportiert ein Large Object in eine Datei
- pg_lo_open() - Öffnet ein Large Object
pg_lo_import
02-Aug-2002 02:54
19-Jun-2002 03:04
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.
19-Jun-2002 03:00
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.
15-May-2002 08:08
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