Obsługa wyjątków PDO
Założenie: Pokażemy, jak poprawnie obsługiwać wyjątki w PDO, aby zapobiec awaryjnemu zakończeniu skryptu w przypadku błędów bazy danych.
Krok po kroku:
- Połączenie z bazą danych: Utworzymy połączenie z bazą danych za pomocą PDO. W przypadku błędu połączenia zostanie wyrzucony wyjątek.
- Wykonanie zapytania: Spróbujemy wykonać zapytanie SQL. Jeśli wystąpi błąd (np. niepoprawne zapytanie), zostanie wyrzucony wyjątek.
- Obsługa wyjątków: Blok
try...catch
przechwytuje wyjątki i pozwala na ich obsługę bez przerywania działania skryptu.
try {
$pdo = new PDO('mysql:host=localhost;dbname=moja_baza', 'użytkownik', 'hasło');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Ustawienie trybu zgłaszania wyjątków
} catch(PDOException $e) {
die("Błąd połączenia z bazą danych: " . $e->getMessage());
}
Ten kod próbuje nawiązać połączenie z bazą danych. PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION
ustawia tryb zgłaszania wyjątków, dzięki czemu błędy połączenia będą zgłaszane jako wyjątki.
try {
$stmt = $pdo->query("SELECT * FROM users WHERE id = 1000"); // Zapytanie, które może zwrócić błąd
$user = $stmt->fetch(PDO::FETCH_ASSOC);
print_r($user);
} catch(PDOException $e) {
echo "Błąd zapytania SQL: " . $e->getMessage();
}
Ten kod wykonuje zapytanie SQL. Jeśli zapytanie zwróci błąd (np. brak tabeli `users`), zostanie wyrzucony wyjątek.
// Kod z kroków 1 i 2 znajduje się tutaj w bloku try...catch
Blok try...catch
jest kluczowy dla obsługi wyjątków. Dzięki niemu możemy przechwycić błędy i odpowiednio na nie zareagować, np. wyświetlić komunikat o błędzie użytkownikowi.
Ten przykład pokazuje podstawy obsługi wyjątków w PDO. Zachęcamy do dalszego zgłębiania tematu, aby nauczyć się bardziej zaawansowanych technik obsługi błędów w aplikacjach PHP.