[CODEIGNITER] Koneksi 2 Database Dalam 1 Aplikasi

Codeigniter memungkinkan kita untuk melakukan koneksi ke 2 database bahkan lebih disaat bersamaan. 2 database atau lebih tersebut juga tentu saja dapat berupa database yang berbeda platform, kita asumsikan saya database 1 adalah database mysqli (maria db) dengan nama db_siswa lalu database 2 adalah database postgresql dengan nama db_sekolah

Buka folder aplikasi tempat project kita berada, dalam hal ini project saya bernama CI-study. Buka Application/config/database.php. Lalu tambahkan source code berikut:

//  Database default kita disable dahulu
// $db['default'] = array(
// 	'dsn'	=> '',
// 	'hostname' => '',
// 	'username' => '',
// 	'password' => '',
// 	'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
// );

$db['con_mysqli'] = array(
	'dsn'	=> '',
	'hostname' => 'localhost',
	'username' => 'root',
	'password' => 'root',
	'database' => 'db_siswa',
	'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['con_postgre'] = array(
	'dsn'	=> '',
	'hostname' => 'localhost',
	'username' => 'postgres',
	'password' => 'postgres',
	'database' => 'db_sekolah',
	'dbdriver' => 'postgre',
	'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
);

Pastikan host, username dan password sudah disesuaikan dengan profil database masing-masing. Save, lalu untuk memanggil masing-masing database untuk operasi CRUD (Create Read Update Delete) maka kita panggil dengan function berikut:

function panggil_database()
    {
        $db_mysqli= $this->load->database('con_mysqli', TRUE); //  koneksi ke db_siswa mysqli
        $db_postgre = $this->load->database('con_postgre', TRUE); //  koneksi ke db_sekolah postgresql
        $siswa = $db_mysqli->get('tb_siswa')->result(); //  tb_siswa contoh nama tabel
        $siswa = $db_mysqli->get('tb_sekolah')->result(); //  tb_sekolah contoh nama tabel
        // lanjutkan logic selanjutnya
        
    }

Function diatas belum dapat langsung menampilkan data, perlu dilanjutkan dengan fungsi mysqli_fetch_array atau mysqli_fetch_object sesuai kebutuhan masing-masing.

Demikian tutorial Codeigniter singkat kali ini. Semoga dapat bermanfaat, terima kasih

Melangkahlah ‘tuk hari esok!

Reza Perdana

Mobile & Web Apps Developer, Sharia Banker and Blogger. Working as IT Ops. and Technical support for PT. Bank Aceh Syariah and also programmer who has been working on various web and mobile application development with strong knowledge on PHP (Yii framework), Android Java and IOS Swift. Interested in sharia banking operation and IT Quality Control related field. Cobit certified and holds Bachelor of Computer Science from UIN Maliki Malang

2 Comments

  1. Keren blognya gan

    1. Reza Perdana says:

      Thank you Mas 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *