sql >> Database teknologi >  >> RDS >> Mysql

PHP, MySQL, PDO-transaktioner - Stopper koden inde i try-blok ved commit()?

Hvis transaktionen mislykkes af en eller anden grund, stopper koden på den linje, hvor fejlen opstod ende så hopper udførelsen direkte til catch-blokken. Så det er tilstrækkeligt, som du har skrevet det i kodeblok 2.

Bemærk, at du altid skal kassere undtagelsen igen efter tilbagerulning. Ellers vil du aldrig have en idé om, hvad der var et problem. Så det burde være

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. Fejl ved installation af psycopg2==2.6.2

  2. Sådan udvikler du en offline-første indbygget Android-app

  3. Objektet i klassen DateTime kunne ikke konverteres til streng

  4. Tilslutning af IBM DB2 med IRI-software