Multi Koneksi Database dengan Codeigniter


Artikel kali ini akan menjelaskan bagaimana membuat multi koneksi database dengan Framework Codeigniter. Pada prinsipnya Codeigniter sendiri sudah support untuk melakukan multi koneksi.
dan permintaan mas Heri Muhrial  untuk membuat multi koneksi database pada Codeigniter.
untuk awal dapat kita melihat configurasi pada database yang berada pada path application/config/database.php
jika kita buka akan terlihat baris configurasi sebagai berikut ini :
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'sisfo',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
secara defaultnya active group di inisialkan dengan default $active_group = 'default';
maka saat kita melakukan load database akan memanggil configurasi default tersebut.
jadi untuk membuat multi koneksi database kita hanya menambah configurasi tambahan sesuai dengan selera masing-masing.
$db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'root', 'password' => '', 'database' => 'sisfo', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE);
$db['default']  sudah terbentuk kedalam array sehingga koneksi default akan di ambil parameter di dalam array tersebut, jadi untuk menambah koneksi kita hanya membuat parameter array satu lagi. seperti contoh saya membuatkan parameter yang bernama "koneksi_server_2" sehingga configurasinya akan saya tambahkan pada bagian bawah default
$db['koneksi_server_2'] = array( 'dsn' => '', 'hostname' => '192.198.1.100', 'username' => 'h4nk', 'password' => 'inipassword', 'database' => 'sisfo', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE);

nah sekarang akan kelihatan pada configurasi default  menggunakan
username = "root"
host     = "localhost"
password = ""
database = "sisfo"
sedangkan pada koneksi_server_2 saya menggunakan configurasi
username = "h4nk"
host     = "192.168.1.100"
password = "inipassword"
database = "sisfo"
untuk konfigurasi pada database sudah cukup sampai disini, saatnya kita akan melakukan load database masing2
sekarang kita akan mencoba load database masing-masing pada sebuah controller, pada contoh saya menggunakan controller Welcome


class Welcome extends CI_Controller
{
public function index()
{
$koneksi1 = $this->load->database('default',TRUE);
$koneksi2 = $this->load->database('koneksi_server_2',TRUE);
}
pada baris berikut ini :  
$koneksi1 = $this->load->database('default',TRUE);
$koneksi2 = $this->load->database('koneksi_server_2',TRUE);
parameter $koneksi1 akan menjadi variabel pengenalan pada load database dengan nama default
dan pada parameter $koneksi2 akan menjadi variabel pengenalan pada load database dengan nama koneksi_server_2 

pada perintah biasa akan langsung menggunakan $this->db->get
sekarang untuk memanggil database kedua  kita akan menggunakan perintah
$koneksi2->get('mahasiswa');  (mengambil data pada tabel mahasiswa pada host 192.168.1.100)
$koneksi1->get('mahasiswa');  (mengambil data pada tabel mahasiswa pada host localhost)
nah kira-kita seperti itu penerapan multi koneksi dengan codeigniter. semoga artikel ini bermanfaat. terima kasih

Berikan Komentar yang bermanfaat dan sehat.

Posting Komentar (0)
Lebih baru Lebih lama