Archive Pages Design$type=blogging

MULTI DATABASE DALAM CODEIGNITER

Selamat siang Blogger semua. Hmm.... habis makan siang emang buat kita mulai mengantuk... Yuk tidur siang... EHHH... Daripada tidur sian...

Selamat siang Blogger semua. Hmm.... habis makan siang emang buat kita mulai mengantuk... Yuk tidur siang... EHHH...

Daripada tidur siang mending kita berbagi dulu....

Sep lah posting lagi.

Kali ini saya akan berbagi pengalaman dalam membuat aplikasi menggunakan codeigniter. Nah, kali ini saya akan berbagi tentang penggunaan database dalam codeigniter dan implementasinya.
Dalam Codeigniter untuk membuat pengaturan koneksi terdapat pada file database.php di root application/config. Isinya seperti dibawah ini :

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');


$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'nama host/ip/localhost';
$db['default']['username'] = 'username pada server host';
$db['default']['password'] = 'password jika ada';
$db['default']['database'] = 'nama database yang digunakan';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

/* End of file database.php */
/* Location: ./application/config/database.php */

Nah sudah lihat penampakannya kan. Mari kita lanjutkan. Dikantor saya memiliki beberapa aplikasi yang databasenya saling bersangkutan satu dengan yang lain. sebenarnya bisa disatukan, namun sehubungan dengan hak cipta dan kebijakan perusahaan jadi kita tidak bisa mengubah sesuai keingin kita deh. Mau ga mau setiap membuat aplikasi baru yang berhubungan dengan database yang lain ya harus di komparasi deh.

Terus gimana koneksi multi database nya ?

Sesuai dengan cara dan gaya saya : (pemirsa juga bisa gunakan gaya pemirsa masing-masing. Heheheehe).

Kita buat 2 set database di file database.php dalam root "application/config/" dengan nama "db1" dan "db2" tadi menjadi seperti dibawah ini :


<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');


$active_group = 'default';
$active_record = TRUE;

// Setting untuk database 1

$db['db1']['hostname'] = 'nama host/ip/localhost';
$db['db1']['username'] = 'username untuk host server';
$db['db1']['password'] = 'password jika ada';
$db['db1']['database'] = 'nama database';
$db['db1']['dbdriver'] = 'mysql';
$db['db1']['dbprefix'] = '';
$db['db1']['pconnect'] = TRUE;
$db['db1']['db_debug'] = TRUE;
$db['db1']['cache_on'] = FALSE;
$db['db1']['cachedir'] = '';
$db['db1']['char_set'] = 'utf8';
$db['db1']['dbcollat'] = 'utf8_general_ci';
$db['db1']['swap_pre'] = '';
$db['db1']['autoinit'] = TRUE;
$db['db1']['stricton'] = FALSE;

// Setting untuk database 2

$db['db2']['hostname'] = 'nama host/ip/localhost';
$db['db2']['username'] = 'username untuk host server';
$db['db2']['password'] = 'password jika ada';
$db['db2']['database'] = 'nama database';
$db['db2']['dbdriver'] = 'mysql';
$db['db2']['dbprefix'] = '';
$db['db2']['pconnect'] = FALSE;
$db['db2']['db_debug'] = TRUE;
$db['db2']['cache_on'] = FALSE;
$db['db2']['cachedir'] = '';
$db['db2']['char_set'] = 'utf8';
$db['db2']['dbcollat'] = 'utf8_general_ci';
$db['db2']['swap_pre'] = '';
$db['db2']['autoinit'] = TRUE;
$db['db2']['stricton'] = FALSE;

// Setting untuk database 2 dan seterusnya jika ada

/* End of file database.php */
/* Location: ./application/config/database.php */

nah pengaturan kedua database diatas hampir sama karena saya menggunakan jenis host dan server yang sama, tapi saya beri warna untuk yang memiliki perbedaan. penjelasan nya sebagai berikut :

'db1'  dan db2 nama untuk database harus berbeda. jika tidak maka saat pemanggilan database maka model codeigniternya akan bingung dan terjadi error.

$db['db1']['pconnect'] = TRUE;  dan $db['db2']['pconnect'] = FALSE;  adalah pengaturan untuk koneksi ke semua model codeigniter secara langsung melalui db_driver.php di root "system/database" di root host applikasi codeigniter kita masing - masing.

Loh Kok ada yang TRUE dan ada yang FALSE ?

Yups, benar sekali. "TRUE" pada config "pconnect" adalah access langsung saat identifikasi aplikasi dengan database. TRUE digunakan jika database tersebut adalah database default atau database utama yang kita gunakan dalam aplikasi codeigniter dan jika kita sudah memanggil database secara langsung di file "autoload.php" pada root "application/config/". sedangkan ['pconnect'] = FALSE;   digunakan jika database tersebut hanya digunakan untuk keperluan minoritas atau digunakan hanya jika diperlukan dalam fungsi atau modul tertentu saja.

CARA PENGGUNAANNYA :

biasanya kita menggunakan database dan querynya pada model di codeigniter.


  • Buatlah sebuah model pada codeigniter
  • Buatlah sebuah general variable untuk bisa dikenali diseluruh fungsi dalam model tersebut dan buatlah funsi __construct jika belum ada seperti code dibawah ini :

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Nama_model extends CI_Model{
   
   
      public $CI;              // general variable berada diluar seluruh function
      
      function __construct()
     {
        parent::__construct();

        $CI = &get_instance();      // sesuai dengan nama nya get_instance agar variable $CI dapat digunakan secara instan hehehehhe....

        $this->DB2 = $CI->load->database('db2', TRUE);       // load database "db2" karena ['pconnect'] = 'FALSE'

     }

     function buatan_kita()
     {
         // kita gunakan kedua database tersebut 
        
        // query ini berlaku untuk database "db1" yang menjadi default database kita tadi

        $this->db->select(*)->from('nama_table')->get;   

       // query ini berlaku untuk database "db2" yang menjadi database tambahan yang telah kita definisikan di function__construct diatas

        $this->DB2->select(*)->from('nama table dari DB2')->get;

     }
}

Nah, kesimpulannya jika kita menggunakan 2 atau lebih database pada satu aplikasi codeigniter set pada file database.php tersebut diatas dengan nama database yang berbeda contoh : db1, db2, db3, dst...

lalu setting ['pconnect'] = TRUE  jika database tersebut yang menjadi database utama dan hanya salah satu saja tidak boleh lebih. Kemudian database yang lainnya set menjadi ['pconnect'] = FALSE   

Semoga berhasil dan selamat berkarya

KOMENTAR

BLOGGER: 2
Loading...
Nama

Ex-Ordinary Graphic Design Others Review Tutorial Web Design
false
ltr
item
Rhio's Blog: MULTI DATABASE DALAM CODEIGNITER
MULTI DATABASE DALAM CODEIGNITER
https://media.licdn.com/mpr/mpr/shrinknp_800_800/AAEAAQAAAAAAAAK6AAAAJGUzODVlOTc4LWZlZTItNDc3Yi04ZjQ1LWRjNTAwYmM5MTg4Nw.jpg
Rhio's Blog
https://rhionair3.blogspot.com/2016/02/multi-database-dalam-codeigniter.html
https://rhionair3.blogspot.com/
http://rhionair3.blogspot.com/
http://rhionair3.blogspot.com/2016/02/multi-database-dalam-codeigniter.html
true
7283421898358931661
UTF-8
Tidak Menemukan Postingan TAMPILKAN SEMUANYA Selebihnya Balas Batalkan Balasan Hapus Oleh Beranda Halaman Postingan Tampilkan Semuanya DIREKOMENDASIKAN UNTUK ANDA LABEL POSTINGAN SEARCH Tidak Menemukan Posting Sesuai Permintaan Anda Back Home Minggu Senin Selasa Rabu Kamis Jum'at Sabtu Ming Sen Sel Rab Kam Jum Sab Januari Pebruari Maret April Mei Juni Juli Agustus September Oktober November Desember Jan Peb Mar Apr Mei Jun Jul Ags Sep Okt Nov Des Baru Saja 1 menit yang lalu $$1$$ minutes ago 1 jam yang lalu $$1$$ hours ago Kemarin $$1$$ days ago $$1$$ weeks ago lebih dari 5 minggu yang lalu