Jika Anda tidak commited
bukan rollback
transaksi terbuka, dan tidak commited
di mana pun nanti di skrip Anda, itu tidak akan commited
(seperti yang terlihat oleh mesin database) , dan akan dibatalkan secara otomatis di akhir skrip Anda.
Tetap saja, saya (hampir) selalu commit
atau rollback
eksplisit transaksi yang saya buka, jadi :
- Tidak ada risiko kesalahan (seperti melakukan "kekeliruan" nanti dalam skrip)
- Kode lebih mudah dibaca/dipahami :ketika seseorang melihat
$db->rollback()
, dia tahu saya pasti ingin transaksi dibatalkan, dan dia tidak perlu berpikir "apakah dia benar-benar ingin mengembalikan, atau apakah dia melupakan sesuatu ? dan bagaimana dengan skrip nanti? "
Mesin DB tidak "melihat" PDOException :dilempar oleh PHP dalam berbagai kondisi -- tetapi database tidak melakukan rollback dengan sendirinya :
- salah satu transaksi dilakukan
- atau dibatalkan
- atau tidak secara eksplisit dikomit atau dibatalkan -- yang berarti tidak dilakukan -- yang berarti apa yang telah dimodifikasi tidak "benar-benar" dimodifikasi