Cara Menyambungkan Multi Database di Codeigniter 3.1

Pernah ngalamin pengen nyambungin lebih dari satu database?
Salah satunya seperti ini You have specified an invalid database connection group.

Jika pernah ngalamin, simak berikut tips yang sudah saya coba setelah menemui banyak error.
Berikut tutorial menyambungkan lebih dari satu database di Codeigniter 3.1

Disini sudah saya anggap mengerti semua ya tentang Codeigniter.

Lanjut
Buka file application/database.php

$active_group = 'default';
$query_builder = TRUE;
 
$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    '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
);

Script diatas, adalah script bawaan dari Codeigniter 3.1

Modifikasi script diatas menjadi seperti ini.

$active_group = 'default';
$query_builder = TRUE;
 
$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'database_pertama',
    '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['second_db'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => '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 load dari database yang pertama, maka untuk melakukan load dari modelnya, bisa dilakukan dengan cara sebagai berikut:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
class M_database_pertama extends CI_Model {
 
    public function __construct()
    {
        parent::__construct();
        $this->load->database();
    }
 
    function view_database_pertama(){
        $this->db->select('database_pertama.db1_id,
                            database_pertama.nama,
                            database_pertama.alamat,
                            database_pertama.tgl_lahir,
                            database_pertama.tempat_lahir,
                            database_pertama.email
                          ');
        $this->db->from('database_pertama');
        $this->db->order_by('db1_id', 'asc');
   
        return  $this->db->get();
    }
}

Untuk melakukan load dari database yang kedua, maka load modelnya bisa dilakukan dengan cara seperti berikut:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
class M_database_kedua extends CI_Model {
 
    public function __construct()
    {
        parent::__construct();
        $this->second_db = $this->load->database('second_db', true);
    }
 
    function view_customer(){
        $this->second_db->select('database_kedua.db2_id,
                            database_kedua.nama_blog,
                            database_kedua.url_blog,
                            database_kedua.link_fb,
                            database_kedua.link_tweet,
                            database_kedua.link_ig,
                            ');
        $this->second_db->from('database_kedua');
        $this->second_db->order_by('db2_id', 'asc');
       
        return  $this->second_db->get();
    }
}

Untuk load ke script Controller-nya dan ke script View-nya dijalankan seperti biasanya.

Terima kasih,
Good luck

Incoming Search:
– Connect Multi Database in Codeigniter 3
– How to Connect Multi Database in Codeigniter 3

Add a Comment

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