Biblioteka PDO w PHP
1. Czym jest PDO?
PDO (PHP Data Objects) to abstrakcyjna warstwa dostępu do baz danych w PHP, która pozwala na pracę z różnymi systemami bazodanowymi (MySQL, PostgreSQL, SQLite, MSSQL itd.) w ujednolicony sposób. Główne zalety PDO:
- ujednolicony interfejs dla wielu baz danych,
- obsługa prepared statements, co zwiększa bezpieczeństwo,
- możliwość ustawienia trybu raportowania błędów,
- łatwa obsługa transakcji.
2. Tworzenie połączenia z bazą danych
Uwagi:
$dsn– Data Source Name, określa typ bazy, host, nazwę bazy i kodowanie.setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)– pozwala na wychwytywanie błędów przez wyjątki.
3. Wykonywanie zapytań
a) SELECT – pobieranie danych
b) INSERT – dodawanie danych
4. Prepared statements (bezpieczne zapytania)
Prepared statements chronią przed SQL Injection i pozwalają dynamicznie wstawiać wartości do zapytań.
a) SELECT z parametrem
b) INSERT z parametrami
5. Aktualizacja i usuwanie danych
a) UPDATE
b) DELETE
6. Transakcje w PDO
Transakcje pozwalają wykonywać wiele operacji jako jedną jednostkę. W przypadku błędu można wycofać wszystkie zmiany.
7. Tryby pobierania wyników
PDO::FETCH_ASSOC– tablica asocjacyjna (najczęściej używana),PDO::FETCH_NUM– tablica indeksowana liczbowo,PDO::FETCH_BOTH– kombinacja powyższych,PDO::FETCH_OBJ– obiekt z właściwościami odpowiadającymi kolumnom.
Przykład:
8. Bezpieczeństwo
- Prepared statements zamiast wstawiania wartości wprost do zapytań.
- Haszowanie haseł:
password_hash()ipassword_verify(). - Obsługa wyjątków (
try/catch) pozwala bezpiecznie reagować na błędy. - Unikanie wyświetlania surowych danych z bazy bez filtrowania (
htmlspecialchars).