Berbagi Ilmu | Software | Seputar Info

Blog sederhana - semoga bermanfaaT

Full width home advertisement

Post Page Advertisement [Top]

Setting 2 Database dalam 1 aplikasi di Codeigniter

Setting 2 Database dalam 1 aplikasi di Codeigniter

Yah, Kembali lagi dan kali ini saya ingin membahas seputar database di Codeigniter. Ketika aplikasi kita yang berbasis CI melakukan operasi mengolah data seperti menambah data, mengubah, menghapus pastinya akan berhubungan dengan Database. Nah untuk pengaturan di Codeigniternya sendiri kalian dapat masuk ke direktori aplikasi kalian -> application -> config -> lalu buka/edit database.php

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'my_db';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
$db['default']['port'] = 3306;

yang perlu diperhatiin itu yang ini

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'my_db';

hostname disesuaikan dengan webserver kalian, lalu username dan password disesuaikan dengan database kalian, kalau default di phpmyadmin itu username = root password dikosongin aja, lalu databasenya kalian pilih sesuai yang akan dipakai nanti.
nah lalu, bisa enggak kalo disetting untuk 2 database dalam 1 aplikasi ini ? jawabannya bisa saja. Tinggal melakukan hal yang sama dengan yang diatas. Terus gunanya kita membuat 2 database dalam satu aplikasi ini adalah ketika kita membutuhkan yang namanya fungsi backup/backingan data jika sewaktu-waktu database yang utama kita terjadi sesuatu yang tidak kita inginkan, nah tugasnya database yang kedua ini untuk backingan datanya lalu direcovery.
langkah-langkanya tetap sama diatas, lalu ditambahi lagi settingan seperti diatas, dan hasilnya seperti ini :

$active_group="db_second";
$active_record=TRUE;
$db['db_second']['hostname']='localhost';
$db['db_second']['username']='root';
$db['db_second']['password']='';
$db['db_second']['database']='my_db2';
$db['db_second']['dbdriver']="mysql";
$db['db_second']['dbprefix']="";
$db['db_second']['pconnect']=FALSE;
$db['db_second']['db_debug']=TRUE;
$db['db_second']['cache_on']=FALSE;
$db['db_second']['cachedir']="";
$db['db_second']['char_set']="utf8";
$db['db_second']['dbcollat']="utf8_general_ci";
$db['db_second']['port']=3306;


$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'my_db';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
$db['default']['port'] = 3306;

Nah, kita anggap nama database kedua kita adalah my_db2 . Lalu pengaturannya bisa dicontoh seperti diatas, dengan posisi untuk database yang kedua di ketik terlebih dahulu baru selanjutnya pengaturan database yang utama. Lalu pada database yang kedua di -> $active_group="db_second" deberi semacam id untuk mewakili kalau itu adalah DB yang kedua, lalu di $db['default'] diganti dengan idnya tadi menjadi $db['db_second'], nah pokoknya diikutin terus cara pengetikannya. Nah lalu ada yang dirubah lagi nih di pengaturan DB yang kedua di baris
$db['db_second']['pconnect']=FALSE;
Kalau di DB yang defaultkan itu bernilai TRUE sedangkan yang di DB kedua kita kasih nilai FALSE. Soalnya DB primary yang kita pakai itu yang utama, jadi koneksinya harus selalu hidup. Lalu untuk memanggil Database yang kedua, kita bisa memakai cara manual sebagai berikut :
$this->db_ = $this->load->database('db_second',TRUE);
Yang $this->db_ itu kita seperti membuat variabel untuk si database kedua yang nantinya bisa digunakan untuk seperlunya. Lalu $this->load->database kita memanggil database yang akan di load, ('db_second',TRUE) memanggil settingan database yang kedua dengan id yang sudah dibuat tadi "db_second", dengan bernilai TRUE (berarti databasenya sudah hidup dan siap digunakan). Nah setelah itu terserah deh mau dipakek apa aja.
$this->db_->insert('my_db2',$value); // melakukan insert data ke Database yang kedua

$this->db_->where('id',$value['id']); // melakukan update data
$this->db_->update('my_db2',$value); // ke Database yang ke dua

$this->db_->delete('my_db2',$value); // melakukan delete data ke Database yang kedua

Oke, sekian dulu dari saya, makasih sudah menyimak ^_^

No comments:

Post a Comment

Bottom Ad [Post Page]