ďťż
Podstrony
|
telcocafeJeżeli metodę PDO::beginTransaction() wraz z zapytaniami obejmę w blok try, trzeba wywołać PDO::rollBack() w sekcji catch, czy PDO zrobi to automatycznie, gdy wystąpi błąd? Teoretycznie zmiany powinny zostać dokonane dopiero po wywołaniu PDO::commit(), a przecież to się nie stanie, gdy PDO rzuci wyjątek. Wolę jednak upewnić się.Przykład:try { $db->beginTransaction(); $db->exec('DELETE FROM kosz'); $db->exec('wygenerujblad'); //Tutaj PDO rzuci wyjątek $db->commit(); } catch(PDOException $e) { /* trzeba pisać $db->rollBack()? */ } Użytkownik Ferrari edytował ten post 05 kwiecień 2009, 23:11 The automatic rollback only happens if you initiate the transaction via PDO::beginTransaction(). If you manually issue a query that begins a transaction PDO has no way of knowing about it and thus cannot roll it back if something bad happens. http://php.mirror.fa...ransactions.php Użytkownik Kozack edytował ten post 06 kwiecień 2009, 02:13 |
|||
Sitedesign by AltusUmbrae. |