Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Jika transaksi PDO PHP gagal, haruskah saya melakukan rollback() secara eksplisit?

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jauh Memiliki Banyak Melalui

  2. Panduan Merancang Basis Data Untuk Sistem Manajemen Inventaris Di MySQL

  3. Cara Mengamankan Server MySQL/MariaDB

  4. Buat jumlah ROLLING selama periode waktu tertentu di mysql

  5. Apakah ruang yang ditempati oleh baris yang dihapus dapat digunakan kembali?