Professional Documents
Culture Documents
com/
http://codeigniter.com/user_guide/database/transactions.html
May 26 2008
1 2 3 4 5 6 7 8 9 10 11 12 13
$db->StartTrans(); $db->Execute("INSERT INTO payment ..."); $db->Execute("INSERT INTO payment_item ..."); $db->Execute("INSERT INTO payment_item ..."); $ok = $db->CompleteTrans(); if ($ok) { echo 'sukses'; } else { echo 'gagal'; }
Dengan menggunakan transaksi yang smart, kita tidak perlu lagi mengecek satu persatu tiap query. Proses commit atau rollback dijalankan secara otomatis berdasarkan sukses atau gagal nya query-query tersebut. Pada database MySQL, tipe tabel MyISAM belum mensupport transaksi. Jadi kalau ingin memanfaatkan transaksi di MySQL, harus menggunakan tipe tabel InnoDB atau BDB. Update (05/10/2008) : Framework CodeIgniter juga mengimplementasikan proses transaksi yang smart mirip dengan adodb. Script berikut ini saya ambil dari User Guide Framework CodeIgniter :
1 2 3 4 5 6 7 8 9 $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 }
Tags: adodb, BDB, ci, codeigniter, commit, Database, InnoDB, MyISAM, mysql, pemrograman, PHP, Programming, rollback, transactions, transaksi, Tutorial, web Comments RSS | Trackback URI
Jadi tidak perlu mematikan secara manual juga tidak apa-apa. Udah tak coba kok, jika ada query gagal, transaksinya otomatis di ROLLBACK Reply 3. wekadesign says: 30 May 2008 at 18:09 sips sips sips Reply 4. henrihnr says: 07 Oct 2008 at 15:26 Menurut saya transaction penting jika terjadi proses mengubah data, bukan karna berhubungan dengan banyak table (CMIIW).. Reply 5. gawibowo says: 01 Nov 2008 at 08:00 Maksud saya adalah jika ada sekumpulan (lebih dari 1) proses INSERT/UPDATE/DELETE. Memang tidak harus pada banyak tabel, tapi saya mengambil contoh query tsb pada banyak tabel yg berhubungan. Reply 6. Martinus Ady H says: 19 Nov 2009 at 13:09 Hmm.. emang sih transaction diperlukan untuk proses update data, tapi pada kenyataan-nya transaction itu diperlukan / lebih jelas terlihat guna-nya pada transaksi yang berurusan dengan tabel lebih dari 1
Klo utk 1 tabel, saya rasa ga begitu berpengaruh soalnya kecepatan proses insert/update kan termasuk cepet tuh. Beda ketika kita ingin meng-insert langsung ke beberapa tabel
CMIIW Reply 7. adiputra says: 05 Sep 2010 at 20:03 emm,,di CI bisa ngatur transaksi data di db juga ya mas,,baru tahu saya manteb mas,,thanks infonya.. Reply 8. indra says: 28 Mar 2012 at 08:46 jangan lupa di di ADODB ganti mysql extention menjadi mysqlt, karena kalo mysql saja tidak mensupport transaksi Reply