Rozszerzenia PHP do komunikacji z bazą danych: mysql, mysqli, PDO
Mirosław Zelent
W celu połączenia się z bazą danych z użyciem PHP możemy teoretycznie skorzystać z trzech możliwych tzw. rozszerzeń (czyli bibliotek) komunikacyjnych. Pierwszą z nich jest mysql (biblioteka jednak wycofana od PHP w wersji 7.0.0), mysqli (gdzie i oznacza improoved, czyli wersję poprawioną, aktualną) albo możemy użyć rozszerzenia o nazwie PDO - PHP Data Objects (w pełni obiektowego).
Poznamy teraz szczegóły dotyczące wszystkich rozszerzeń, jednak zanim to zrobimy zapoznajmy się z definicją akronimu API.
- API
- (ang. Application Programing Interface) - interfejs klas, metod, funkcji, zmiennych, parametrów, których aplikacja PHP używa w celu zrealizowania zaplanowanych przez programistę zadań (w naszym kontekście chodzi o komunikację z bazą danych.
Interfejs API może być albo proceduralny
albo obiektowy
. Jeżeli jest proceduralny, to oznacza to, że operacje bazodanowe realizowane są przez odpowiednio przygotowane i wywołane funkcje
. Każda funkcja wykonuje unikalne, dające się jednoznacznie wyróżnić działanie związane z bazą danych. Parametry przekazujemy do funkcji jako argumenty w nawiasie, w momencie ich wywołania.
Jeśli zaś interfejs API jest obiektowy, to oznacza to, iż w aplikacji są tworzone obiekty
(na podstawie "przepisu" klas
), a operacje bazodanowe realizowane są poprzez metody
(czyli funkcje wewnątrz klas) wywoływane na rzecz tychże stworzonych obiektów. Oprócz metod, obiekty mogą posiadać przypisane atrybuty
(parametry, właściwości). Więcej informacji na temat podejścia obiektowego (klasy, obiekty, metody, atrybuty, konstruktory, destruktory itd.) znajdziesz w tym tutorialu.
- Rozszerzenie mysql
- Dodatek wprowadzony w wersji 2.0 specyfikacji języka PHP, został zdeprecjonowany od PHP. 5.5.0 oraz całkowicie usunięty od PHP 7.0.0. Nie zaleca się stosowania mysql we współczesnych projektach - zamiast tej biblioteki powinniśmy użyć mysqli lub PDO. Biblioteka posiada interfejs jedynie proceduralny, brak interfejsu obiektowego.
- Rozszerzenie mysqli (i = ang. improved)
- Dodatek wprowadzony w wersji 5.0 specyfikacji języka PHP, usprawnił i zaktualizował komunikację do tej pory realizowaną biblioteką mysql. To rozszerzenie oferuje zarówno API proceduralne jak i obiektowe. W pełni aktualne, współczesne, zalecane do użycia w nowych projektach. Aczkolwiek w odróżnieniu od dodatku PDO (który potrafi obsłużyć różne silniki bazodanowe), mysqli współpracuje tylko bazami MySQL.
- Rozszerzenie PDO (ang. PHP Data Objects)
- Dodatek wprowadzony również w wersji 5.0 specyfikacji języka PHP, zrealizowany w pełni obiektowo. W pełni aktualne, współczesne, zalecane do użycia w nowych projektach. Jako jedyne rozszerzenie potrafi oprócz MySQL obsłużyć różne silniki bazodanowe, w tym m.in.: PostgreSQL, Oracle, MS SQL, SQLite, IBM DB2, Firebird i wiele innych.
Przyjrzyjmy się teraz porównaniu rozszerzeń w postaci tabelarycznej:
Rozszerzenie PHP | mysql | mysqli | PDO |
---|---|---|---|
Wprowadzono w wersji PHP | 2.0 | 5.0 | 5.0 |
Wsparcie dla rozszerzenia | zdeprecjonowane od PHP 5.5.0, usunięte od PHP 7.0.0 | aktywnie wspierane | aktywnie wspierane |
Zalecane dla nowych projektów | nie | tak | tak |
Interfejs proceduralny | tak | tak | nie |
Interfejs obiektowy | nie | tak | tak |
Użycie różnych silników (driverów) SQL | nie | nie | tak |
Wsparcie funkcji MySQL 5.1+ | nie | tak | większość |
Prepared Statements po stronie serwera | nie | tak | tak |
Prepared Statements po stronie klienta | nie | nie | tak |
W technikum nauczymy się korzystać z bazy danych z użyciem biblioteki mysqli (zarówno w metodzie proceduralnej, jak i obiektowej). A co do biblioteki PDO, która jest już tylko obiektowa, to zainteresowanych odsyłam do odcinka piątego serii dedykowanej PHP, gdzie wyjaśniamy i pokazujemy w akcji szczegółowe różnice pomiędzy użyciem mysqli i PDO.
Polecamy: Mega Sekurak Hacking Party
Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - wpiszcie go w koszyku, dzięki czemu otrzymacie 40% zniżki na bilet standard. Więcej szczegółów znajdziecie tutaj.
Książka: Wprowadzenie do bezpieczeństwa IT
Niedawno wystartował dodruk świetnej, rozchwytywanej książki pt. "Wprowadzenie do bezpieczeństwa IT, Tom I" (około 940 stron). Mamy dla Was kod: pasja (wpisz go w koszyku), dzięki któremu otrzymacie 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla naszych Widzów! Jest to pierwszy tom serii o ITsec, który wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!
Pomóż dzieciom
Polska Akcja Humanitarna od wielu lat dożywia dzieci. Prosimy, poświęć teraz dosłownie chwilę i pomóż klikając w oznaczony strzałką zielony brzuszek Pajacyka. Dziękujemy!
Komentarze
Czy macie jakieś pytania, sugestie, uwagi? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać: kontakt@pasja-informatyki.pl. Dziękujemy za poświęcony czas - to dzięki Wam serwis staje się coraz lepszy!