PHP Data Objects (PDO) — Obiectele de Date PHP au fost introduse ca extensii PECL în PHP 5.0 și au devenit parte componentă a distributivului PHP în versiunea PHP 5.1.x. Extensia PDO furnizează o interfață consistentă pentru acces la baze de date și este utilizată împreună cu driver-e specifice PDO pentru fiecare bază de date. Fiecare driver de asemenea poate avea funcțiile sale specifice pentru baza de date, dar funcționalitatea de bază de acces la date, cum ar fi efectuarea interpelărilor și primirea datelor, este asigurată de funcțiile PDO utilizând driver-ul indicat în PDO::__construct().
Observați că extensia PDO și driver-ele sale se intenționează a fi asamblate ca extensii partajate. Aceasta vă va permite să reînnoiți în mod clar și simplu driver-ele din PECL, fără a vă forța să reasamblați întregul PHP.
La momentul lansării PHP 5.1.x, PDO este mai mult decât gata pentru testări extensive și poate fi adoptat în majoritatea situațiilor. Oricum însă este important de a înțelege că PDO și driver-ele sale sunt relativ tinere și în ele pot să lipsească anumite facilități specifice anumitor baze de date; evaluați atent PDO înainte de a-l utiliza în proiecte noi.
Codul-sursă vechi la general se va baza pe extensiile de baze de date existente, care deocamdată sunt încă menținute.
În PHP 4, susținerea MySQL 3 era încorporată. Odată cu lansarea PHP 5.0 au apărut două extensii MySQL numite 'mysql' și 'mysqli', care au fost proiectate să susțină MySQL < 4.1 și MySQL 4.1 și ulterior respectiv. Odată cu introducerea PDO, care oferă o interfață foarte rapidă către toate API-urile de baze de date susținute de PHP, driver-ul PDO_MYSQL poate susține orice versiune curentă (MySQL 3, 4 or 5) în codul-sursă PHP scris pentru PDO, în dependență de versiunea bibliotecii MySQL utilizată în timpul compilării. Extensiile vechi MySQL rămân prezente din motivul compatibilității inverse, dar nu sunt activate implicit.
În PHP 5.0.x susținerea SQLite 2 era asigurată de extensia sqlite incorporată, care de asemenea era disponibilă ca extensie PECL în PHP 4.3 și PHP 4.4. Odată cu introducerea PDO, extensia sqlite acționează și ca driver 'sqlite2' pentru PDO; datorită acestui fapt extensia sqlite în PHP 5.1.x are o dependență față de extensia PDO.
PHP 5.1.x este furnizat cu câteva interfețe alternative pentru sqlite:
Extensia sqlite oferă un API procedural/obiect-orientat "clasic", pe care posibil l-ați utilizat în versiunile anterioare ale PHP. Ea de asemenea oferă driver-ul PDO 'sqlite2', care vă permite să accesați baze de date vechi SQLite 2 utilizând API al PDO.
PDO_SQLITE oferă driver-ul 'sqlite' de versiunea 3. SQLite de versiunea 3 este net superior SQLite de versiunea 2, însă formatele fișierelor acestor două versiuni nu sunt compatibile.
Dacă proiectul dumneavoastră bazat pe PHP este de acum scris și funcționează cu versiunile anterioare ale PHP atunci puteți să utilizați mai departe ext/sqlite fără probleme, dar va trebui să activați în mod explicit ambele extensii PDO și sqlite. Noile proiecte ar trebui să utilizeze drive-ele PDO și 'sqlite' (versiunea 3), deoarece acesta e mai rapid decât SQLite 2, posedă o concurență de blocare îmbunătățită și susține nativ atât declarații pregătite anterior cât și coloane binare.
Trebuie să activați PDO pentru a utiliza extensia SQLite. Dacă doriți să asamblați extensia PDO în calitate de extensie partajată, atunci și extensia SQLite trebuie asamblată ca extensie partajată. Aceasta rămâne în vigoare și pentru orice altă extensie care oferă un driver PDO.