Oleh : Yovi Citra Nengsih
Active
Record
Active Record (AR) adalah
sebuah pattern / pendekatan untuk membaca data dari sebuah table atau view dengan
cara membungkusnya dalam sebuah ke las. Sehingga tidak dibutuhkan SQL jika kita
menggunakan active record. Keuntungan yang didapat adalah kesederhanaan dalam
pengkodean program dan fleksibilitasnya ketika terjadi pergantian skema atau
pun jenis database (bebas dari sintaks-sintaks SQL yang bersifat khusus ke
database tertentu). CodeIgniter tidak
sepenuhnya meniru pattern Active Record, tetapi ia melakukan sedikit modifikasi
terhadap pattern tersebut. Dengan menggunakan Active Record CI maka proses pengambilan
data, insert, update dan delete menjadi lebih sederhana.
$this->db->get('users')
Query di atas akan menghasilkan query “SELECT * FROM
users” dan setara dengan
$this->db->query('SELECT
* FROM users');
Ketika kita tidak menggunakan fungsi apapun maka
fungsi get akan menghasilkan seluruh record yang berada di dalam tabel
tersebut, tetapi jika diberi fungsi select(), where(), dan lain-lain maka hasilnya
akan berbeda.
A. Selecting
Data
Untuk mengambil data dari database
dengan field-field tertentu kita dapat menggunakan perintah select(). Contoh:
$this->db->select('username,password,email');
$this->db->get('users');
Query di atas setara dengan
$this->db->query('SELECT
username,password,email FR
OM users');
Selain method select, terdapat juga method-method
lainnya seperti from(), where(), where_in(), group_by, order_by, like, distinct()
dan lain-lain. Semua method tersebut jika dipanggil akan membentuk sebuah query
dan query tersebut akan dijalankan ketika method get() dipanggil. Untuk
kemudahan, active record sudah memiliki fitur chaining method, jadi kita dapat
merangkai semua query tadi sehingga menjadi lebih ringkas. Contoh query yang
kompleks
$data_all=$this->db
->select("sum(budget) as
sum_budget, site_ad_mapping.*")
->where('site_ad_mapping.site_id',$site_id)
->where('ad_status','approved')
->where('request_status','active')
->where('ad_operational_status','active')
->join('ads','ads.id_ad
=site_ad_mapping.ad_id ')
->join('advertisers','id_advertiser=advertiser_id')
->join('site_counter','site_counter.site_id
=site_id ')
->join('sites','site_counter.site_id
= sites.id_site ')
->join('publishers','sites.publisher_id
= id_publisher')
->from('site_ad_mapping')
->order_by('ad_priority_level','desc')
->order_by('point','desc')
->group_by('ad_id')->limit(0,10)
->get()->result();
B. Insert Data
Selain pengambilan data, Active
record juga menyediakan fungsionalitas untuk insert data. Untuk menginsert
sebuah data kita hanya memerlukan dua parameter yaitu nama table dan data yang
akan dimasukkan. Data yang akan dimasukkan harus memiliki format berupa array
assosiatif ataupun object. Adapun keuntungan menggunakan active record untuk
menginsert data selain sederhana untuk digunakan, adalah method ini secara build-in
disertai fungsi untuk penanganan escaping, jadi query kita sudah bisa dikatakan
aman dari kesalahan, contoh:
$data=
array('username'=>'Ibnoe','email'=>'xibnoe@gmail.com');
$this->db
->insert('users',$data);
Selain dengan cara di atas, kita juga bisa memasukkan
data yang diinginkan satu persatu. Contohnya:
$data=array('username'=>'Ibnoe','email'=>'xibnoe@gmail.com');
$this->db->set($data);
$this->db->insert('users');
Atau
$this->db->set('username','ibnoe');
$this->db->set('email','xibnoe@gmail.com');
$this->db->insert('users');
Kedua Contoh di atas menghasilkan query yang sama.
C. Update Data
Selain insert dan select data,
CodeIgniter juga menyediakan fungsi untuk update. Adapun penggunaannya mirip
seperti penggunaan insert, contoh:
$this->db->set('username','ibnoe');
$this->db->set('password','123456');
$this->db->update('users');
Query di atas akan menghasilkan query “update users
set username=ibnoe, password=123456”. Cara yang lebih sederhana dengan
menggunakan array
assosiatif
$data=array('username'=>'ibnoe','password'=>'123456');
$this->db->where('id',5);
$this->db->update('users',$data);
D. Delete Data
Untuk melakukan delete pada
CodeIgniter, kita dapat menggunakan perintah berikut ini:
$this->db->where('id',5);
$this->db->delete('table_name');
SUMBER
Diktat web dinamis lanjut
http://httpd.apache.org/docs/2.2/howto/htaccess.html
Tidak ada komentar:
Posting Komentar