Dalam membuat aplikasi yang kompleks terkadang kita dihadapkan pada permasalahan untuk melakukan koneksi ke dalam lebih dari satu database. Sebagai contoh dalam satu instansi sudah terdapat sistem kepegawaian dan sistem presensi yang berbeda database. Kemudian kita akan membuat sistem keuangan untuk pembayaran gaji berdasarkan golongan pegawai dan jumlah presensinya setiap bulan.
Untuk membuat sistem tersebut kita harus melakukan koneksi ke database kepegawaian dan database presensi. CodeIgniter mempunyai kemudahan dalam melakukan konfigurasi dengan multi database tersebut.
Langkah-langkah yang harus dilakukan adalah sebagai berikut:
- Edit file database.php dalam folder application/config
- Kemudian copy konfigurasi default database pada CodeIgniter dan paste di bawahnya
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
// Default konfigurasi database $db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'username_database', 'password' => 'password_database', 'database' => 'nama_database', '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 ); // Konfigurasi database kedua $db['database_kedua'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'username_database_kedua', 'password' => 'password_database_kedua', 'database' => 'nama_database_kedua', '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 ); |
- Untuk memanggil database kedua dapat dilakukan dengan menuliskan sintaks di model sebagai berikut di:
1 2 |
// Load database kedua $db2 = $this->load->database('database_kedua', TRUE); |
- Kode untuk mengakses data dari database kedua sebagai berikut:
1 2 3 4 5 6 7 8 9 10 11 |
// Default query database $this->db->select('first_name, last_name'); $this->db->from('tbl_users'); $this->db->where('id', 99); $query = $this->db->get(); // Query dari database kedua $db2->select('image'); $db2->from('tbl_images'); $db2->where('id', 25); $query = $db2->get(); |
Dengan cara di atas kita dapat menggunakannya untuk melakukan koneksi ke banyak database pada CodeIgniter.