Firebird/InterBase jest relacyjną bazą danych oferującą wiele cech ANSI SQL-92, działającą na systemach Linux, Windows i różnorodnych platformach Unixowych. Firebird/InterBase oferuje doskonałą współbieżność, dużą wydajność i potężne wsparcie języka dla procedur składowanych i wyzwalaczy. Baza jest używana w systemach produkcyjnych, pod różnymi nazwami od 1981 r.
InterBase to nazwa jednego z wariantów tej bazy z zamkniętym kodem źródłowym, rozwijana przez Borland/Inprise. Więcej informacji na temat InterBase jest dostępnych na stronie http://www.borland.com/interbase/.
Firebird jest komercyjnie niezależnym projektem programistów C i C++, doradców technicznych i zwolenników rozwiajania i ulepszania wieloplatformowego systemu zarządzania bazami danych bazującego na kodzie źródłowym wydanym przez Inprise Corp (znanej jako Borland Software Corp) na licencji InterBase Public License v.1.0 z dnia 25 lipca 2000 r. Więcej informacji na temat Firebird jest dostępnych na stronie http://www.firebirdsql.org/.
Notatka: To rozszerzenie działa z InterBase 5 i późniejszymi wersjami oraz ze wszystkimi wersjami Firebird. Wsparcie dla InterBase 5.x będzie zakończone w PHP 5.
Jako znaku unikowego ta baza danych używa pojedyńczego cudzysłowu ('), ( to zachowanie jest podobne do bazy danych Sybase ) i może zostać ustawione w php.ini przez następującą dyrektywę konfiguracyjną:
W celu uruchomienia wsparcia dla Firebird/InterBase,
należy użyć opcji --with-interbase[=DIR]
w czasie kompilacji PHP,
gdzie DIR jest katalogiem instalacji InterBase
- domyślnie /usr/interbase.
Informacja dla użytkowników Windows: Aby aktywować to rozszerzenie w środowisku Windows, musisz skopiować fbclient.dll/gds32.dll z katalogu z bibliotekami PHP/Win32 do katalogu SYSTEM32 systemu Windows (np. C:\WINNT\SYSTEM32 lub C:\WINDOWS\SYSTEM32). W przypadku gdy serwer Firebird/InterBase jest zainstalowany na tej samej maszynie gdzie uruchomiony jest PHP, biblioteka powinna już tam się znajdować. Zatem w tym przypadku nie ma potrzeby kopiowania fbclient.dll/gds32.dll z katalogu bibliotek.
Na działanie tych funcji wpływają ustawienia zawarte w pliku php.ini.
Tabela 1. Opcje konfiguracji Firebird/InterBase
Nazwa | Domyślna wartość | Możliwość zmian | Rejestr zmian |
---|---|---|---|
ibase.allow_persistent | "1" | PHP_INI_SYSTEM | |
ibase.max_persistent | "-1" | PHP_INI_SYSTEM | |
ibase.max_links | "-1" | PHP_INI_SYSTEM | |
ibase.default_db | NULL | PHP_INI_SYSTEM | Dostępne od PHP 5.0.0. |
ibase.default_user | NULL | PHP_INI_ALL | |
ibase.default_password | NULL | PHP_INI_ALL | |
ibase.default_charset | NULL | PHP_INI_ALL | Dostępne od PHP 5.0.0. |
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | PHP_INI_ALL | |
ibase.dateformat | "%Y-%m-%d" | PHP_INI_ALL | |
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL |
Oto krótkie wyjaśnienie dyrektyw konfiguracji.
ibase.allow_persistent
booleanOkreśla czy pozwolić bazie Firebird/InterBase na połączenia stałe.
ibase.max_persistent
integerDefiniuje maksymalną liczbę połączeń stałych Firebird/InterBase na proces serwera. Jeżeli ta liczba zostanie przekroczona to nowe połączenia utworzone za pomocą ibase_pconnect() będą istniały tylko podczas działania skryptu.
ibase.max_links
integerDefiniuje maksymalną liczbę połączeń Firebird/InterBase na proces serwera, włączając w to połączenia stałe.
ibase.default_db
stringDefiniuje domyślną bazę danych dla ibase_[p]connect() i jest używana w przypadku, kiedy funkcja zostanie wywołana bez parametru. Jeżeli dodatkowo jest włączony tryb SQL safe mode, nie będą możliwe połączenia do innych baz danych, poza tą domyślną.
ibase.default_user
stringDefiniuje domyślną nazwę użytkownika, używaną podaczas połączenia do bazy danych, jeżeli nie jest podana jako parametr funkcji.
ibase.default_password
stringDefiniuje domyślne hasło, używane podaczas połączenia do bazy danych, jeżeli nie jest podane jako parametr funkcji.
ibase.default_charset
stringDefiniuje domyślne kodowanie znaków, używane podaczas połączenia do bazy danych jeżeli nie jest podane jako parametr funkcji.
ibase.timestampformat
string
ibase.dateformat
string
ibase.timeformat
stringTe dyrektywy ustawiają formatowanie daty i czasu, które jest używane podczas zwracania wartości dat i czasów ze zbioru wynikowego lub podczas dowiązywania argumentów.
Poniższe stałe są zdefiniowane w tym rozszerzeniu i stają się dostępne, gdy rozszerzenie jest dokompilowane do PHP, lub załadowane dynamicznie przy starcie.
Następujące stałe mogą być przekazane do ibase_trans() w celu określenia zachowania transakcji.
Tabela 2. Flagi transakcji Firebird/InterBase
Stała | Opis |
---|---|
IBASE_DEFAULT | Standardowe ustawienia transakcji. Domyślnie są one określone przez bibliotekę klienta, w większości przypadków następująco: IBASE_WRITE|IBASE_CONCURRENCY|IBASE_WAIT . |
IBASE_READ | Rozpoczyna transakcję w trybie tylko do odczytu. |
IBASE_WRITE | Rozpoczyna transakcję w trybie odczytu i zapisu. |
IBASE_CONSISTENCY | Rozpoczyna transakcję na poziomie izolacji ustawionym jako 'spójny', który oznacza że transakcja nie może czytać z tabel będących w trakcie modyfikacji przez równoległe transakcje. |
IBASE_CONCURRENCY | Rozpoczyna transakcję na poziomie izolacji ustawionym jako 'współbieżny' (lub 'migawka'), który oznacza że transakcja ma dostęp do wszystkich tabel, ale nie widzi żadnych zmian zatwierdzonych w międzyczasie przez równoległe transakcje. |
IBASE_COMMITTED | Rozpoczyna transakcję na poziomie izolacji ustawionym jako 'odczyt zatwierdzony'. Ta flaga powinna być połączona jedną z dwóch: IBASE_REC_VERSION lub IBASE_REC_NO_VERSION. Ten poziom izolacji pozwala uzyskać dostęp do zmian zatwierdzonych w międzyczasie przez inne transakcje. W połączeniu z IBASE_REC_NO_VERSION może być odczytana tylko ostatnia wartość wiersza. W połączeniu z IBASE_REC_VERSION może być zawsze odczytana aktualna wartość wiersza po zmodyfikowaniu jej przez równoległe transakcję. |
IBASE_WAIT | Oznacza, że transakcja powinna czekać i ponawiać próbę w momencie wystąpienia konfliktu. |
IBASE_NOWAIT | Oznacza, że transakcja powinna natychmiast zwrócić błąd w momencie wystąpienia konfliktu. |
Następujące stałe mogą być przekazane do ibase_fetch_row(), ibase_fetch_assoc() lub ibase_fetch_object() w celu określenia zachowania tych funkcji podczas pobierania wierszy.
Tabela 3. Flagi pobierania wierszy Firebird/InterBase
Stała | Opis |
---|---|
IBASE_FETCH_BLOBS | Równoważna z IBASE_TEXT w celu zachowania zgodności z poprzednimi wersjami. Powoduje pobranie zawartości BLOBa, zamiast zwrócenia identyfikatora BLOBa. |
IBASE_FETCH_ARRAYS | Powoduje pobieranie tablic. W przeciwnym wypadku są zwracane identyfikatory tablic. Identyfikatory tablic mogą być używane tylko jako argumenty dla operacji INSERT, gdyż obecnie nie ma odpowiednich funkcji do ich obsługiwania. |
IBASE_UNIXTIME | Powoduje że pola data i czas nie są zwracane w postaci sformatowanych łańcuchów, lecz jako unixowy znacznik czasu (liczba sekund, która upłynęła od początku epoki Uniksa, datowanej na 1 stycznia 1970 0:00 GTM). W niektórych systemach może to stanowić problem, w momencie gdy zostaną użyte daty sprzed 1970 r. |
Następujące stałe przekazują żądania i opcje do funkcji usługi API (ibase_server_info(), ibase_db_info(), ibase_backup(), ibase_restore() i ibase_maintain_db()). Prosimy odnieść się do dokumentacji Firebird/InterBase żeby zapoznać się ze znaczeniem tych opcji.
Opcje dla ibase_backup()
Opcje dla ibase_restore()
Opcje dla ibase_maintain_db()
Opcje dla ibase_db_info()
Opcje dla ibase_server_info()
Poprzedni | Spis treści | Następny |
filter_var | Początek rozdziału | ibase_add_user |