ADOdb

Z PHPEdia.pl
Skocz do: nawigacji, wyszukiwania

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

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.

Linki zewnętrzne