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';secara defaultnya active group di inisialkan dengan default $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
);
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"sedangkan pada koneksi_server_2 saya menggunakan configurasi
host = "localhost"
password = ""
database = "sisfo"
username = "h4nk"untuk konfigurasi pada database sudah cukup sampai disini, saatnya kita akan melakukan load database masing2
host = "192.168.1.100"
password = "inipassword"
database = "sisfo"
sekarang kita akan mencoba load database masing-masing pada sebuah controller, pada contoh saya menggunakan controller Welcome
class Welcome extends CI_Controllerpada baris berikut ini :
{
public function index()
{
$koneksi1 = $this->load->database('default',TRUE);
$koneksi2 = $this->load->database('koneksi_server_2',TRUE);
}
$koneksi1 = $this->load->database('default',TRUE);parameter $koneksi1 akan menjadi variabel pengenalan pada load database dengan nama default
$koneksi2 = $this->load->database('koneksi_server_2',TRUE);
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
Tidak ada komentar:
Posting Komentar