Tutorial multi database pada CodeIgniter

Seperti pada judul di atas, kali ini kita akan membahas bagaimana menggunakan dua database pada framework CodeIgniter 3, istilah kerennya multi database.

Biasanya sebuah aplikasi berbasis web yang dibangun menggunakan framework CodeIgniter cukup menggunakan satu database saja. Namun pada suatu kondisi tertentu kita diharuskan untuk menggunakan dua database atau lebih.

Untuk menggunakan banyak database pada CodeIgniter, kita tidak perlu melakukan perubahan pada sistem CodeIgniter, cukup melakukan sedikit penambahan kode pada konfigurasi database aplikasi.

Berikut langkah-langkah menggunakan dua database pada CodeIgniter 3.

Hal pertama yang harus dilakukan adalah mengkonfigurasi database.

  • Silakan edit file database.php yang ada dalam folder application -> config.

  • Setelah itu copy konfigurasi default database CodeIgniter dan paste di bawahnya.

// 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
);```

- Agar database kedua dapat digunakan, silakan load databasenya menggunakan syntax berikut:

```php
// Load database kedua
$db2 = $this->load->database('database_kedua', TRUE);
  • Sekarang kita sudah dapat mengakses dan menggunakan database kedua untuk menyimpan data. Berikut adalah contoh kode untuk mengakses data dari database kedua:
// 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();

Pada pembahasan di atas kita telah mengetahui bagaimana menghubungkan dua database pada CodeIgniter 3. Dengan cara yang sama kita dapat menggunakannya untuk menghubungkan banyak database pada CodeIgniter.