ADOdb
Z PHPEdia.pl
Spis treści |
Czym jest ADOdb?
ADOdb jest to "sterownik" baz danych przeznaczony dla PHP. dzięki niemu możemy w prosty i łatwy sposób wykorzystywać jeden kod programowy dla wielu baz danych.
ADOdb jest w pełni obiektowy, dzięki czemu możemy go dowolnie i prosto rozbudować.
Aktualnie obsługiwane bazy
- MSSQL
- borland_ibase oraz ibase
- csv
- firebird
- ldap
- PostgreSQL w wersjach: 6.4, 7, 8
- sapdb
- SQLite
- sybase
- Access
- MySQL
- DB2
- fbSQL
- Oracle
- i wiele innych
Korzystanie z ADOdb
Dzięki wbudowanym funkcjom w ADOdb, mamy nie tylko ułatwione przechodzenie między różnymi bazami danych, ale też dużo wygodniejsze działanie na zapytaniach i ich wynikach. Poniżej parę przykładów:
przykład 1: Pobieranie wszystkich rekordów z bazy.
| Wykorzystanie ADOdb | Standardowe połączenie w PHP |
<? //ładujemy plik z klasą ADOdb include_once('adodb.inc.php'); //ustawiamy z jakiego typu bazy będziemy korzystać $db =& ADONewConnection('mysql'); //ustalamy połączenie z MySQL oraz wybieramy bazę $db->Connect('HOST','UZYTKOWNIK','HASLO','BAZA'); //ustawiamy typ wyniku na tablice asocjacyjną //można to pominąć, gdyż ADODB_FETCH_ASSOC //jest ustawione jako domyślne $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; //wykonujemy zapytanie do bazy i pobieramy wszystkie wyniki $users = $db->GetAll('select * from users'); ?> | <? //łączymy się z serwerem MySQL $sql = mysql_connect('HOST','UZYTKOWNIK', 'HASLO'); //wybieramy bazę mysql_select_db('BAZA'); //wykonujemy zapytanie do bazy $result=mysql_query('select * from users'); //pobieramy wszystkie wyniki do zmiennej $users $users=array(); while($row=mysql_fetch_assoc($result)){ $users[]=$row; } ?> |
Jak widać, przy pominięciu połączenia z bazą, pobranie wszystkich wyników sprowadza się do jednej linijki kodu:
<? $users=$db->GetAll('select * from users'); ?>
Tak jak proste jest pobieranie danych, tak samo prosta jest zmiana typu bazy. Wystarczy zmienić jedną linijkę.
<? //$db =& ADONewConnection('mysql'); $db=&ADONewConnection('pgsql'); //wybieramy typ bazy - pgsql ?>
Przykład 2: Proste stronicowanie
Każdy chyba nie raz pisał swój własny skrypt do tworzenia stron w MySQL. dzięki ADOdb czynności te sprowadzają się praktycznie do paru linijek. Poniżej prosty przykład w jaki sposób zastosować do tego ADOdb.
<? include('adodb_connection.inc.php'); //dołączamy plik z kodem łączenia z bazę... /** * tworzymy zapytanie do bazy wraz z parametrami: * 1. zapytanie do bazy * 2. ilość rekordów na stronie * 3. bieżąca strona, można podać bez problemu bezpośrednio nawet * z $_GETa, gdyż ADOdb i tak dostosuje; w przypadku niezdefiniowania parametru * przyjmowana jest domyślna wartość 1; gdy wartość parametru przewyższa liczbę stron * to przyjmowana jest ostatnia strona * rezultat zapisujemy do zmiennej **/ $result=$db->PageExecute('select * from users',10,$_GET['pageNr']); /** * numer ostatniej strony - potrzebny np. do wygenerowania * wszystkich numerów stron **/ $lastPage=$result->_lastPageNo; include('pager.inc.php'); //dołączamy plik generujący listę stron ?>
Jak widzimy, wszystko sprowadza się do jednej linijki, w której pobieramy rezultat oraz do drugiej, gdzie mamy numer ostatniej strony. Teraz już wystarczy tylko wygenerować numery stron. Dla przykładu standardowe stronicowanie bez korzystania z ADOdb.
