Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP, MySQL, PDO Transactions - Czy kod wewnątrz bloku try zatrzymuje się na commit()?

Jeśli transakcja się nie powiedzie z jakiegokolwiek powodu, kod zatrzymuje się na samym wierszu, w którym wystąpił błąd koniec, a następnie wykonanie przeskakuje bezpośrednio do bloku catch. Więc wystarczy, jak masz to napisane w Code Block 2.

Pamiętaj, że powinieneś zawsze ponownie zgłaszać wyjątek po wycofaniu. W przeciwnym razie nigdy nie będziesz miał pojęcia, co było problemem. Tak powinno być

try{
    $stmt = $db->prepare(... 1 ...);
    $stmt->execute();

    $stmt = $db->prepare(... 2 ...);
    $stmt->execute();

    $stmt = $db->prepare(... 3 ...);
    $stmt->execute();

    $db->commit();

    return true;
}catch(Exception $e){
    $db->rollBack();
    throw $e;
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:czy istnieje coś takiego jak wewnętrzny identyfikator rekordu dla każdego rekordu w tabeli MySQL?

  2. PHP Wyszukiwanie i sortowanie MySQL według trafności

  3. Zmienna zdefiniowana przez użytkownika MySQL w klauzuli WHERE

  4. MySQL - wybierz dane z bazy danych pomiędzy dwiema datami

  5. Kaskadowe pole kombi formularza dostępu nie pokazuje nic w rozwijanym menu