[ Pobierz całość w formacie PDF ]
.Dla przykładu w moim testowym systemie zainstalowałem Oracle8i na serwerze Windows NT i utworzyłem prostą bazę danych.Następnie w moim linuksowym serwerze WWWdodałem sterownik OOB.Sterownika tego można używać do podłączania się do dowolnej bazy zgodnej z ODBC,działającej na dowolnej platformie.Dodatkowym utrudnieniem jest to, że używając OOB należy kolejno zainstalować klienta i serwer OOBna oddzielnych komputerach.Na szczęście na witrynie Easysoft bardzo łatwo jest odszukać i załadowaćodpowiednie programy.Kolejne trzy części omawiają instalowanie zarządcy sterowników unixODBC, kompilację PHP z obsługąunixODBC oraz instalowanie sterownika OOB.Części te są przeznaczone dla użytkowników Linuksa izakładamy, że potrafisz kompilować programy dla tego systemu oraz, że masz zainstalowane wszystkieniezbędne kompilatory i narzędzia.Instalowanie i kompilowanie unixODBCPo ściągnięciu i rozpakowaniu plików unixODBC, musisz skompilować zarządcę sterowników.Winstalacji unixODBC znajduje się standardowy skrypt służący do konfigurowania środowiska kompilacji.W celuskompilowania mojej konfiguracji PHP użyłem następujących opcji:./configure --disable--drivers --disable-threads --prefix=/usr/local/unixODBC --disable-guiPonieważ miałem już potrzebny sterownik, nie potrzebowałem aby unixODBC dodał swoje sterownikiwewnętrzne.Powodem wyłączenia wątków jest to, że moja instalacja PHP jest w postaci dynamicznieładowanego modułu (--with-apxs) a Apache nie obsługuje domyślnie wątków.Skompilowanie tego modułu zobsługa wątków spowodowałoby awarię Apache w trakcie ładowania modułu.Wyłączyłem również obsługęgraficznego interfejsu użytkownika, ponieważ nie mam na moim serwerze zainstalowanego środowiskaXWindows.Kompilowanie PHP z obsługą unixODBCPo skompilowaniu i zainstalowaniu zarządcy sterowników unixODBC należy przekompilować PHP zwłączoną obsługą unixODBC.Odpowiednią opcją konfiguracji jest --with-unixODBC=/sciezka/do/unixODBC.Użyta ścieżka musi być taka sama jak ścieżka użyta w opcji --prefix podczas kompilowania unixODBC.Wmoim przypadku jest to /usr/local/unixODBC.Jeżeli statycznie łączysz PHP z Apache, musisz również przekompilować Apache.Jeżeli korzystasz zdynamicznego łączenia, wystarczy wyłączyć Apache, zainstalować nowy moduł PHP i powtórnie uruchomićApache.Instalowanie sterownika OOBW moim przypadku musiałem zainstalować serwer OOB na komputerze z Windows NT i skonfigurowaćgo tak, aby przyjmował żądania.Wykonałem to uruchamiając program instalacyjny i wykonując wszystkie krokiw programie instalacyjnym.Wszystko zadziałało bez problemów.Następnie ściągnąłem i zainstalowałemoprogramowanie klienta na serwerze z systemem Linux.Proces ten był niespodziewanie łatwy, ponieważdostępny był program instalacyjny prowadzący użytkownika przez kolejne kroki procedury instalacyjnej.Możnarównież skorzystać z witryny Easysoft, gdzie na podstawie konkretnej konfiguracji otrzymamy szczegółowy opistego jak ściągnąć i zainstalować serwer i klienta OOB.Konfigurowanie OOBPo zainstalowaniu całego oprogramowania należy utworzyć nazwy zródeł danych (DSN) zarówno nakliencie jak i na serwerze.yródła danych są mechanizmem specyficznym dla ODBC służącym do opisywaniasposobu współpracy z systemem bazy danych.W Windows tworzy się DSN poprzez program yródła danychODBC dostępny w Panelu sterowania.OOB wymaga utworzenia systemowego DSN a nie DSN użytkownika.Program ten zawiera plik pomocy opisujący sposób tworzenia systemowych DSN.Rozdział 6 Współpraca z bazami danych72Aby utworzyć DSN na Linuksie należy zmienić przy pomocy graficznego narzędzia unixODBC lubedytora tekstowego pliki odbcinst.ini i odbc.ini.Plik odbcinst.ini jest używany do opisu nazw sterowników i łączynazwy z plikami sterowników.Mój plik wygląda następująco:[OOB]Driver = /usr/local/easysoft/oob/client/libesoobclient.soSetup = /usr/local/easysoft/oob/client/libesoobsetup.soFileUsage = 1Plik odbc.ini zawiera opis zródeł danych.Swoje zródło skonfigurowałem następująco (serwer i hasło jestoczywiście zmyślone):[localdsn]Server=satabase.server.comDriver=OOBPort=8888Transport=tcpipLogonUser=prodplanerLogonAuth=passwordTargetDSN=LocalOracleTargetUser=prodplanerTargetAuth=passwordKorzystanie z ODBCPo zainstalowaniu i skonfigurowaniu wszystkich komponentów korzystanie z ODBC w PHP jest bardzopodobne do korzystania z MySQL.Na wydruku 6.4 znajduje się skrypt, który jest odpowiednikiem ODBCskryptu umieszczonego na wydruku 6.2.Tabela używana w tym przykładzie jest odpowiednikiem używanej wpoprzednim przykładzie.Wydruk 6.4.Odczytywanie danych z bazy ODBCPobioeranie danych z bazy danych ODBCWydruk 6.4 jest właściwie taki sam jak wydruk 6.2.Mimo, że nazwy funkcji są inne, koncepcja jestnieomal identyczna.Jedyną zauważalną różnicą jest wywołanie putenv() na początku skryptu.Wywołanie toumieszcza w środowisku programu ścieżkę do pliku inicjalizującego ODBC.Nie jest to potrzebne, jeżeli w tensam sposób ustawiłeś środowisko serwera WWW.Dodatkowo, na wydruku 6.4 do pól tabeli odwołujemy się dlaPHP Kompendium wiedzy73uproszczenia za pomocą numer a nie nazwy.Dostępne są funkcje ODBC zapewniające obsługę transakcji,kursorów i wiele innych.W skorowidzu funkcji na końcu książki znajdują wszystkie funkcje do obsługi ODBC.Uwaga na temat połączenia do baz danychW poprzednim przykładzie połączenie do baz danych było realizowane za pomocą podstawowych funkcji xxx_connect().PHPposiada również zdolność tworzenia trwałych połączeń za pomocą funkcji pxxx_connect().Użycie połączenia trwałego poprawiawydajność aplikacji, ponieważ sam PHP utrzymuje połączenie z bazą danych, więc może być ono wielokrotnie używane.Poutworzeniu połączenia za pomocą odpowiedniej kombinacji host-użytkownik-hasło, PHP ciągle dostarcza tego samego połączenia dokolejnych wywołań połączenia.W bazach danych utworzenie połączenia trwa zwykle długo (na przykład w Oracle), więc użycietrwałych połączeń może mieć ogromny wpływ na ogólną wydajność aplikacji.PHPLIBJak wspomniałem w poprzednich rozdziałach, dostępne są świetne biblioteki do wykorzystania przezprogramistów PHP.Jedna z najczęściej używanych bibliotek, PHP Base Library (PHPLIB) jest dostępna podadresem http://phplib.netuse.de.Zawiera ona klasy dostęu do baz danych, obsługi sesji, narzędzi autoryzacji iwiele, wiele innych.Klasy dostępu do bazy danych w PHPLIB tworzą warstwę abstrakcji dla kilku baz danych obsługiwanychprzez PHP.Warstwa ta zapewnia wspólny interfejs dla bazowych funkcji baz danych, więc programiści mogąłatwo zmieniać typ bazy danych bez konieczności nauki nowego zestawu funkcji lub wielu zmian w kodzie.Wczasie pisania książki PHPLIB obsługiwał MySQL, PostgreSQL, mSQL, Oracle 7, Oracle 8, Sybase, MicrosoftSQL Sever i bazy ODBC.Poniższy wydruk ilustruje siłę modułu obsługującego bazy danych z pakietu PHPLIB.W skrypcieumieszczonym na wydruku 6.5.pokazany został sposób uproszczenia skryptu z wydruku 6.2.Wydruk 6.5.Użycie PHPLIB do powtórzenia wyników z wydruku 6
[ Pobierz całość w formacie PDF ]