You are on page 1of 4

Wajib di kunjungi: http://www.trali.net/trali/artikel/post/117/Codeigniter http://aflah7.wordpress.

com/
http://codeigniter.com/user_guide/database/transactions.html

http://terusbelajar.wordpress.com/2010/10/17/1075/ http://javaziez.com/menggunakan-fpdf-di-codeigniter/ http://gedelumbung.com/category/tutorial-pemrograman/tutorial-codeigniter/

May 26 2008

Smart Transactions di ADOdb dan Framework CodeIgniter


Posted on 13:53 in Database, PHP, Tutorial | 22,761 views | 8 Comments Transaksi di database adalah hal yang cukup penting, terutama ketika kita sedang membangun aplikasi yang kompleks, melibatkan banyak tabel yang saling berhubungan. Transaksi digunakan saat kita menjalankan beberapa query sebagai satu kesatuan, untuk memastikan bahwa semua query tersebut berhasil dijalankan. Jika ada 1 saja query yang gagal, maka semua query seharusnya dibatalkan. All Or Nothing. Berikut ini adalah contoh penggunaan transaksi menggunakan database library ADOdb

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

8 Responses to Smart Transactions di ADOdb dan Framework CodeIgniter


1. wekadesign says: 26 May 2008 at 17:14 Yups.. jangan lupa sebelumnya Seting Autocommitnya dimatiin dulu ya Reply 2. gawibowo says: 30 May 2008 at 09:57 Autocommit otomatis diset ke FALSE sewaktu kita menjalankan fungsi BeginTrans() ataupun StartTrans().

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

You might also like