PHP 5.4.31 Released

pg_lo_import

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_importImportuje wielki obiekt (Large Object - LO) z pliku

Opis

int pg_lo_import ( resource $polaczenie , string $sciezka , mixed $id_objektu )
int pg_lo_import ( string $sciezka , mixed $id_objektu )

pg_lo_import() kreuje nowy Wielki Obiekt (LO) w bazie danych, używając pliku w systemie plików jako jego danych źródłowych.

Użycie interfejsu wielkich obiektów (LO) wymaga zamknięcia wszystkich operacji z nim związanych wewnątrz transakcji.

Informacja: Gdy włączony jest tryb bezpieczny, PHP sprawdza, czy pliki lub katalogi, na których zostaną wykonane operacje mają takie same UID (owner) jak skrypt, który jest aktualnie wykonywany.

Informacja:

Ta funkcja była poprzednio nazwana pg_loimport().

Parametry

polaczenie

Identyfikator połączenia do bazy PostgreSQL. Gdy parametr polaczenie nie został podany, zostanie użyte domyślne połączenie. Domyślnym połączeniem jest ostatnie połączenie stworzone przez pg_connect() lub pg_pconnect().

sciezka

Pełna ścieżka z nazwą pliku znajdującego się w systemie plików klienta, z którego zostanie przeczytany LO.

id_obiektu

Jeśli id_obiektu został podany, funkcja spróbuje stworzyć wielki obiekt o podanym unikalnym identyfikatorze, w przeciwnym razie serwer przydzieli dowolne id. Parametr został dodany w PHP 5.3 i jest uzależniony od mechanizmów działania, które jako pierwsze pojawiły się w PostgreSQL 8.1.

Zwracane wartości

Identyfikator OID nowo stworzonego LO, lub FALSE w przypadku błędów.

Rejestr zmian

Wersja Opis
4.2.0

Składnia tej funkcji uległa zmianie. Wcześniej wyglądała tak:

int pg_lo_import ( string $sciezka [, resource $polaczenie ] )

Przykłady

Przykład #1 pg_lo_import() - przykład

<?php
   $baza_danych 
pg_connect("dbname=warszawa");
   
pg_query($baza_danych"begin");
   
$oid pg_lo_import($baza_danych'/tmp/lob.dat');
   
pg_query($baza_danych"commit");
?>

Zobacz też:

add a note add a note

User Contributed Notes 4 notes

up
1
vi2 at vi2 dot com
11 years ago
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.
up
1
yohgaki at php dot net
12 years ago
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.
up
1
yohgaki at php dot net
12 years ago
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.
up
1
ceco at noxis dot net
12 years ago
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
To Top