Dokumentacja PHP PDO::commit() stwierdza, że metoda zwraca TRUE w przypadku sukcesu lub FALSE w przypadku niepowodzenia. Czy odnosi się to do sukcesu lub niepowodzenia instrukcji oświadczenia między beginTransaction() i commit()?PDO :: commit() sukces lub niepowodzenie
Na przykład z dokumentacji:
$dbh->beginTransaction();
$sql = 'INSERT INTO fruit (name, colour, calories) VALUES (?, ?, ?)';
$sth = $dbh->prepare($sql);
foreach ($fruits as $fruit) {
$sth->execute([
$fruit->name,
$fruit->colour,
$fruit->calories,
]);
}
$dbh->commit();
Jeżeli którykolwiek z powyższych egzekucji zawiodą,() metoda będzie popełnić return false ze względu na „zasadzie wszystko albo nic” transakcji atomowych?
Naprawdę nie przypominam sobie, żebyś musiał dokonać zatwierdzenia w bazie kodu, czy próbowałeś to zrobić bez niego? – Jonast92
Nie jestem pewien, czy rozumiem.Celem ręcznych transakcji jest upewnienie się, że wiele instrukcji zakończyło się sukcesem, lub żadne z nich nie powiodło się. –
Myślę, że nad tym się zastanawiasz. Jeśli się nie uda w tym scenariuszu, najprawdopodobniej wszystko zawiedzie i na odwrót. Po prostu dodaj poprawną obsługę błędów do kodu i jeśli naprawdę martwisz się, co się nie udaje, po prostu zaloguj się. Nigdy nie musiałem używać commit w kodzie po stronie serwera, więc wydaje mi się, że jest to mało prawdopodobne. – Jonast92