Database Transactions, CodeIgniter

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan

transaction complite codeigniter

CodeIgniter menggunakan pendekatan terhadap transaksi yang sangat mirip dengan proses yang digunakan oleh database populer ADODB. Codeigniter  menyederhanakan jalanya proses transaksi.

Secara tradisional, transaksi membutuhkan cukup banyak pekerjaan untuk diterapkan karena mereka menuntut agar Anda melacak kueri Anda dan menentukan apakah akan megeksekusi query atau melakukan pengembalian berdasarkan keberhasilan atau kegagalan kueri Anda. Proses ini akan menjadi sangat rumit jika kita mengeksekusi query bersarang. Sebaliknya, codeigniter telah menerapkan sistem transaksi cerdas yang melakukan semua ini untuk Anda secara otomatis.

 

baca juga : Enable Module Rewrite Apache on Ubuntu


 

Running Transactions


untuk menjalankan transaksi
$this->db->trans_start()

untuk eksekusi akhir transaksi
$this->db->trans_complete()

seperti sample di bawah ini
$this->db->trans_start();
$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->query('AND YET ANOTHER QUERY...');
$this->db->trans_complete();


Strict Mode


Secara default CodeIgniter menjalankan semua transaksi dalam Strict Mode. Bila Strict Mode diaktifkan, jika Anda menjalankan beberapa kelompok transaksi, jika satu grup gagal, semua grup akan diluncurkan kembali. Jika mode ketat dinonaktifkan, masing-masing kelompok diperlakukan secara independen, artinya kegagalan satu kelompok tidak akan mempengaruhi orang lain.

strict mode dapat di disable:

$this->db->trans_strict(FALSE);


Managing Errors


dalam proses transaksi kita sering menemukan anomali yang bisa di sebabkan dari kegagalan query ataupun type character yang tidak sesuai dengan format di database. untuk itu kita perlu menerapkan managing errors. codeigniter menyediakan function yang dapat kita manfaatkan. perhatikan script di bawah ini.
$this->db->trans_start();
$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->trans_complete();

if ($this->db->trans_status() === FALSE)
{
// generate an error... or use the log_message() function to log your error
}


 

sumber referensi codeiginiter user guide