Wyjątki a transakcje bazodanowe
Założenie: Pokażemy, jak obsługiwać wyjątki podczas pracy z bazą danych w PHP, używając transakcji, aby zapewnić spójność danych nawet w przypadku błędów.
Krok po kroku:
- Połączenie z bazą danych: Ustanawiamy połączenie z bazą danych.
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Ustawiamy tryb zgłaszania wyjątków ?>
- Rozpoczęcie transakcji: Zaczynam transakcję, aby zagwarantować atomowość operacji.
beginTransaction(); ?>
- Wykonanie zapytań: Próbujemy wykonać kilka zapytań SQL. Jeśli jedno z nich zawiedzie, cała transakcja zostanie cofnięta.
exec("INSERT INTO users (name) VALUES ('Jan')"); $pdo->exec("INSERT INTO users (name) VALUES ('Anna')"); // To zapytanie może spowodować błąd, np. naruszenie klucza unikalnego $pdo->commit(); // Zatwierdzamy transakcję, jeśli wszystko przebiegło pomyślnie echo "Transakcja zakończona sukcesem!"; } catch (PDOException $e) { $pdo->rollBack(); // Cofamy transakcję w przypadku błędu echo "Błąd: " . $e->getMessage(); } ?>
- Obsługa wyjątków: Blok `try…catch` przechwytuje potencjalne wyjątki `PDOException` i wykonuje `rollBack()`, aby cofnąć zmiany w bazie danych.
Ten przykład pokazuje podstawy obsługi wyjątków w kontekście transakcji bazodanowych w PHP. Zachęcamy do dalszego zgłębiania tematu, aby lepiej zrozumieć mechanizmy zapewniania spójności danych w aplikacjach.