ref pgsql


PostgreSQLPodręcznik PHPPoprzedniNastępnyLXXXI. PostgreSQL PostgreSQL, stworzony początkowo na Wydziale Nauk Komputerowych Uniwersytetu Berkeley, był pionierem wielu koncepcji obiektowych obecnie dostępnych w komercyjnych bazach danych. Jest zgodny z ze standardami języka SQL92/SQL3, obsługuje transakcje i pozwala definiować własne typy danych. PostgreSQL jest wolno-dostępnym spadkobiercą oryginalnego kodu Berkeley. PostgreSQL jest produktem Open Source i jest dostępny za darmo. Aby korzystać wsparcia dla PosgreSQL-a, będziesz potrzebował PostgreSQL w wersji 6.5 lub nowszej. Aby wykorzystać wszystkie możliwości modułu potrzebny jest PostgreSQL 7.0 lub nowszy. PostgreSQL wspiera wiele stron kodowych, z wielobajtowymi włącznie. Aktualna wersja i więcej informacji jest dostępne tu: http://www.postgresql.org/. W celu uruchomienia wsparcia dla PostgreSQL-a, należy użyć opcji --with-pgsql[=DIR] w czasie kompilacji PHP. Jeśli jest dostępny współdzielony moduł, może on być załadowany przez wpisanie dyrektywy extension w pliku php.ini lub funkcji dl(). Wspierane dyrektywy ini są opisane w pliku php.ini-dist który jest zawarty w dystrybucji źródłowej. Ostrzeżenie Używanie modułu PostgreSQL z PHP 4.0.6 nie jest zalecane ze względu na błąd w obsłudze komunikatów. Zaleca się używanie wersji 4.1.0 lub nowszej. Ostrzeżenie Nazwy funkcji PostgreSQL będą zmienione w wersji 4.2.0 w celu dostosowania do obecnych standardów kodowania. Większość nowych nazw będzie miała dodatkowe podkreślenia np. pg_lo_open(). Niektóre funkcje będą miały zmienione nazwy, aby ujednolicić nazewnictwo np. pg_exec() na pg_query(). Stare nazwy będzie można używać w wersji 4.2.0 i w kilku kolejnych, mogą jednak być usunięte w przyszłości. Tabela 1. Zmienione nazwy funkcjiStara nazwaNowa nazwapg_exec()pg_query()pg_getlastoid()pg_last_oid()pg_cmdtuples()pg_affected_rows()pg_numrows()pg_num_rows()pg_numfields()pg_num_fields()pg_fieldname()pg_field_name()pg_fieldsize()pg_field_size()pg_fieldnum()pg_field_num()pg_fieldprtlen()pg_field_prtlen()pg_fieldisnull()pg_field_is_null()pg_freeresult()pg_free_result()pg_result()pg_fetch_result()pg_loreadall()pg_lo_read_all()pg_locreate()pg_lo_create()pg_lounlink()pg_lo_unlink()pg_loopen()pg_lo_open()pg_loclose()pg_lo_close()pg_loread()pg_lo_read()pg_lowrite()pg_lo_write()pg_loimport()pg_lo_import()pg_loexport()pg_lo_export() Stara składnia pg_connect()/ pg_pconnect() będzie wycofywana aby zapewnić w przyszłości wsparcie dla asynchronicznych połączeń. Prosimy używać łańcucha połączeniowego dla pg_connect() i pg_pconnect(). Nie wszystkie funkcje są wspierane przez wszystkie wersje. Zależy to od twojej wersji libpq (Interfejs C klienta PostgreSQL) i sposobu jej kompilacji. Jeśli brakuje jakiejś funkcji, libpq nie będzie wspierać danej funkcjonalności. Jest istotne żeby używać nowszej biblioteki libpq niż serwer PostgreSQL z którym się łączymy. Jeśli libpq jest starsze niż oczekiwane przez serwer PostgreSQL, możesz mieć problemy. Od wersji 6.3 (03/02/1998) PostgreSQL używa gniazdek domen unixowych ("unix domain socket"). Port TCP NIE będzie domyślnie otwarty. Poniższa tabela pokazuje te nowe rodzaje połączeń. Plik gniazdka znajduje się w /tmp/.s.PGSQL.5432. Ta opcja może być odblokowana przez użycie flagi '-i' z poleceniem postmaster i oznacza: "nasłuchuj na gniazdkach TCP/IP oraz na gniazdkach domen unixowych". Tabela 2. PostgreSQL Postmaster i PHPPostmasterPHPStatuspostmaster &pg_connect("dbname=MyDbName");OKpostmaster -i &pg_connect("dbname=MyDbName");OKpostmaster &pg_connect("host=localhost dbname=MyDbName"); Unable to connect to PostgreSQL server: connectDB() failed: Is the postmaster running and accepting TCP/IP (with -i) connection at 'localhost' on port '5432'? in /path/to/file.php on line 20. postmaster -i &pg_connect("host=localhost dbname=MyDbName");OK Połączenie do serwera PostgreSQL może być nawiązane poprzez ustawienie następujących wartości w łańcuchu połączenia: $conn = pg_connect("host=myHost port=myPort tty=myTTY options=myOptions dbname=myDB user=myUser password=myPassword "); Poprzednia składnia: $conn = pg_connect ("host", "port", "options", "tty", "dbname") jest wycofywana. Zmienne środowiskowe wpływają na zachowanie klienta i serwera PostgreSQL. Przykładowo, moduł PostgreSQL będzie poszukiwał zmiennej PGHOST kiedy nazwa serwera będzie pominięta w łańcuchu połączeniowym. Używane zmienne środowiskowe zmieniają się wraz z wersjami. Szczegóły można znaleźć w PostgreSQL Programmer's Manual (libpq - Environment Variables). Upewnij się że ustawiłeś zmienne środowiskowe dla właściwego użytkownika. Użyj $_ENV lub getenv() aby sprawdzić jakie zmienne środowiskowe są dostępne dla bieżącego procesu. Przykład 1. Ustawianie domyślnych parametrówPGHOST=psgql.exmaple.com PGPORT=7890 PGDATABASE=web-system PGUSER=web-user PGPASSWORD=secret PGDATESTYLE=ISO PGTZ=JST PGCLIENTENCODING=EUC-JP export PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD PGDATESTYLE PGTZ PGCLIENTENCODING Poczynając od PostgreSQL 7.1.0, jedno pole typu text może pomieścić do 1GB. Wcześniejsze wersje limitowały wielkość pola do rozmiaru bloku (domyślnie 8KB, maksymalnie 32KB, definiowane przy kompilacji). Użycie interfejsu wielkich obiektów (LO - Large Objects) wymaga zamknięcia go wewnątrz bloku transakcji. Transakcja rozpoczyna się poleceniem SQL BEGIN i - jeśli transakcja się powiedzie - kończy się poleceniem COMMIT lub END. Jeśli transakcja nie powiedzie się, powinna być zakończona poleceniem ROLLBACK lub ABORT. Przykład 2. Używanie wielkich obiektów (Large Objects)<?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, "large object data"); pg_lo_close ($handle); pg_query ($database, "commit"); ?> Nie wolno zamykać połączenia do serwera PostgreSQL, przed zamknięciem wielkiego obiektu. Spis treścipg_affected_rows -- Zwraca liczbę zmodyfikowanych wierszypg_cancel_query --  Przerywa zapytanie asynchroniczne pg_client_encoding --  Zwraca stronę kodową klienta pg_close -- Zamyka połączenie z PostgreSQLpg_connect -- Otwiera tymczasowe połączenie do PostgreSQL-apg_connection_busy --  Sprawdza czy połączenie jest zajęte czy wolne pg_connection_reset --  Restartuje połączenie pg_connection_status --  Zwraca stan połączenia pg_convert --  Konwertuje tablicę asocjacyjną na postać użyteczną w zapytaniu SQL. pg_copy_from --  Wstawia wiersze do tabeli z tablicy pg_copy_to --  Kopiuje tabele do tablicy pg_dbname -- Podaje nazwę bazy danychpg_delete --  Usuwa wiersze pg_end_copy -- Synchronizuje klienta z serwerem PostgreSQL.pg_escape_bytea --  Konwertuje łańcuch wstawiając sekwencje Escape dla typu bytea pg_escape_string --  Konwertuje łańcuch wstawiając sekwencje Escape dla typu text/char pg_fetch_all -- Fetch a row as an arraypg_fetch_array -- Pobiera wiersz jako tablicępg_fetch_assoc -- Fetch a row as an arraypg_fetch_object -- Pobiera wiersz jako obiektpg_fetch_result -- Pobiera dane z wynikupg_fetch_row -- Pobiera wiersz jako tablicę z indeksami numerycznymipg_field_is_null -- Sprawdza czy pole zawiera NULLpg_field_name -- Zwraca nazwę kolumnypg_field_num -- Zwraza numer kolumny o podanej nazwiepg_field_prtlen -- Zwraca drukowalną długośćpg_field_size --  Zwraca wewnętrzny rozmiar kolumny pg_field_type --  Zwraca typ wskazanej kolumny pg_free_result -- Zwalnia pamięć wynikupg_get_notify -- Ping database connectionpg_get_pid -- Ping database connectionpg_get_result --  Zwraca wynik zapytania asynchroniczego pg_host --  Zwraca nazwę komputera związaną z identyfikatorem połączenia pg_insert --  Wstawia tablicę do tabeli pg_last_error -- Zwraca ostatni komunikat błędu związany z połączeniempg_last_notice --  Zwraca komunikaty informacyjne serwera PostgreSQL pg_last_oid -- Zwraca identyfikator ostatniego obiektupg_lo_close -- Zamyka wielki obiekt (Large Object - LO)pg_lo_create -- Tworzy wielki obiekt (Large Object - LO)pg_lo_export -- Eksportuje wielki obiekt (Large Object - LO) do plikupg_lo_import -- Importuje wielki obiekt (Large Object - LO) z plikupg_lo_open -- Otwiera wielki obiekt (Large Object - LO)pg_lo_read_all --  Odczytuje wielki obiekt (Large Object - LO) i wysła go do przeglądarki pg_lo_read -- Odczytuje wielki obiekt (Large Object - LO)pg_lo_seek --  Przemieszcza wskaźnik położenia w wielkim obiekcie (Large Object - LO) pg_lo_tell --  Zwraca wskaźnik położenia w wielkim obiekcie (Large Object - LO) pg_lo_unlink -- Usuwa wielki obiekt (Large Object - LO)pg_lo_write -- Zapisuje do wielkiego obiektu (Large Object - LO)pg_meta_data --  Get meta data for table. pg_num_fields -- Zwraca liczbę kolumnpg_num_rows -- Zwraca liczbę wierszypg_options -- Podaje opcje powiązane z połączenimpg_pconnect -- Otwiera stałe połączenie do serwera PostgreSQLpg_ping -- Ping database connectionpg_port --  Zwraca numer portu związany z połączeniem pg_put_line -- Wysyła łańcuch zakończony znakiem NULL do serwera PostgreSQLpg_query -- Wykonuje zapytanie do bazypg_result_error --  Zwraca błąd związany z identyfikatorem wyniku pg_result_seek -- Set internal row offset in result resourcepg_result_status --  Zwraca stan wyniku pg_select --  Wybiera wiersze pg_send_query --  Wysyła zapytanie asynchroniczne pg_set_client_encoding --  Ustawia stronę kodową klienta PostgreSQL-a pg_trace -- Uruchamia śledzenie połączeń z PostgreSQLpg_tty --  Zwraca nazwę konsoli tty związanej z połączeniem pg_unescape_bytea --  Escape binary for bytea type pg_untrace -- Wyłącza śledzenie połączeń PostgreSQL-apg_update --  Aktualizuje tabelę. PoprzedniSpis treściNastępnyposix_unamePoczątek rozdziałupg_affected_rows

Wyszukiwarka

Podobne podstrony:
ref pgsql
ref pgsql
ref oracle
ref math
ref misc
ref xml
ref sybase
percepcja ref
ref dbx
ref dbm
ref ingres
ref overload
ref xmlrpc
ref exec
ref aspell
ref oracle
Ref B2 Fechner
ref mssql
ref

więcej podobnych podstron