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() i password_verify().
  • Obsługa wyjątków (try/catch) pozwala bezpiecznie reagować na błędy.
  • Unikanie wyświetlania surowych danych z bazy bez filtrowania (htmlspecialchars).