Om du inte commit
inte rollback
en öppnad transaktion och den är inte commited
någonstans senare i ditt skript kommer det inte att commited
(som ses av databasmotorn) , och kommer automatiskt att återställas i slutet av ditt skript.
Ändå, jag (nåja, nästan) alltid commit
eller rollback
uttryckligen transaktionerna jag öppnar, så :
- Det finns ingen risk för ett fel (som att begå "av misstag" senare i skriptet)
- Koden är lättare att läsa/förstå :när man ser
$db->rollback()
, han vet att jag vill att transaktionen ska återställas, och han behöver inte tänka "ville han verkligen återställa, eller glömde han något? och vad händer senare i manuset? "
DB-motorn "ser" inte PDOUndantaget :det kastas av PHP under olika förhållanden -- men databasen återställer ingenting av sig själv :
- antingen genomförs en transaktion
- eller så har den rullats tillbaka
- eller så är det inte explicit begått eller återställt -- vilket betyder att det inte är begått -- vilket betyder att det som har ändrats inte är "riktigt" modifierat