Hvis du ikke commit
ikke rollback
en åbnet transaktion, og den er ikke commited
hvor som helst senere i dit script, bliver det ikke commited
(som set af databasemotoren) , og vil automatisk rulles tilbage i slutningen af dit script.
Alligevel (nå, næsten) altid commit
eller rollback
udtrykkeligt de transaktioner, jeg åbner, så :
- Der er ikke risiko for en fejl (som at begå "ved en fejl" senere i scriptet)
- Koden er lettere at læse/forstå :når man ser
$db->rollback()
, han ved, at jeg med sikkerhed vil have transaktionen rullet tilbage, og han behøver ikke tænke "ønskede han virkelig at rulle tilbage, eller glemte han noget? og hvad med senere i scriptet? "
DB-motoren "ser" ikke PDO-undtagelsen :den kastes af PHP under forskellige forhold -- men databasen ruller ikke tilbage noget af sig selv :
- enten er en transaktion begået
- eller den er rullet tilbage
- eller det er ikke eksplicit commited eller rullet tilbage -- hvilket betyder at det ikke er commitet -- hvilket betyder at det der er blevet ændret ikke er "rigtigt" ændret