Sabtu, 29 April 2017

Membuat multiple database pada Codeigniter



Dalam membangun sebuah sistem informasi berbasis web pasti kita membutuhkan sebuah database, dan dimana database yang kita buat sudah banyak data nya jadi terpaksa kita buat database baru, atau saat kita membuat sebuah project yang besar client meminta ada 4 database yang berbeda untuk setiap page nya. jika itu terjadi jangan khawatir itu semua bisa di atasi, kita bisa meload multiple database dalam satu project sehingga dalam 1 model kita bisa memanggil lebih dari satu database. untuk lebih jelasnya berikut cara nya.

1. Pastikan library database sudah dipanggil biar otomatis gunakan autoload libary.
$autoload['libraries'] = array('database'); 
2. Buka file config database pada project anda, secara default maka akan tampak seperti ini.
$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
	'dsn'	=> '',
	'hostname' => 'localhost',
	'username' => 'root',
	'password' => '',
	'database' => 'database1',
	'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
);
3. Untuk menmbahkan database baru tinggal copy database default, pada script ini $db['default'] ubah kata default menjadi kata inittial database anda.
$active_group = 'my_db1';
$query_builder = TRUE;

$db['my_db1'] = array(
	'dsn'	=> '',
	'hostname' => 'localhost',
	'username' => 'root',
	'password' => '',
	'database' => 'my_database1',
	'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
);


$active_group = 'my_db2';
$query_builder = TRUE;

$db['my_db2'] = array(
	'dsn'	=> '',
	'hostname' => 'localhost',
	'username' => 'root',
	'password' => '',
	'database' => 'my_database2',
	'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
);
4. Jika sudah saatnya kita terapkan pada models, buka models kalian, dan tambahkan script berikut.
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class M_models extends CI_Model {
   
  public function __construct(){
  parent::__construct();
     $this->db1 = $this->load->database('my_db1', true); //untuk memanggil database 1
     $this->db2 = $this->load->database('my_db2', true); //untuk memanggil database 2	
  }	
	
   function get_detail_db1(){
      $query = $this->db1->select('*')
		         ->from('tbProgramer')
			 ->order_by('skill','ASC')
			 ->get();
      return $query;
   }
		
   function get_detail_db2(){
      $query = $this->db2->select('*')
		         ->from('tbGaji_programer')
			 ->order_by('S1','ASC')
			 ->get();
	return $query;
   }	

} 

Semoga bermanfaat
Previous Post
Next Post

0 komentar: