Skip to Content

Koneksi ke dua database

Pengalaman saya selama menggunakan drupal, adakalanya harus memisahkan antara database core engine drupal, dengan database aplikasi yang kita buat. Hal ini sangat mudah, bahkan lebih dari dua database pun. Yang diperlukan di sini adalah seting awal file settings.php yang ada di /htdocs/drupal/sites/default, seperti contoh berikut :

$db_url ['monitor']= 'mysql://root:admin@localhost/data_mon2'; 
$db_url  ['default']= 'mysql://root:admin@localhost/system';
$db_prefix = '';

Database system adalah database mysql tempat di mana kita menaruh database system drupal (untuk kasus ini, user: root dan password : admin). Sedangkan data_mon2 adalah database aplikasi yang diakses oleh modul-modul yang kita buat.

Penggunaan dalam modul bisa dilihat di seperti di bawah ini :

<?php
function runningtext_page(){
db_set_active('monitor');
$header=array(
  array(
'data'=>t('No'), $i),

    array(
'data'=>t('Message'), 'field'=>'message'),

    array(
'data'=>t('Status'), 'field'=>'status'),

    array(
'data' => t('Operations'), 'colspan' => '2')

  );

            

    
$sql='SELECT * FROM {runningtext}'.tablesort_sql($header);

    
$hasil pager_query($sql,10);    

    
$stat=array(t('Non Aktif'), t('Aktif'));

$i=1;

$page $_GET['page'];    

while (
$baris db_fetch_object($hasil)){

    if (
$baris->status==1){

  

  

  
$rows[]=array($i+($page*10), 

            
$baris->message$stat[$baris->status], l(t('Edit|'), "runningtext/edit/$baris->id"), l(t('NonAktifkan'), "runningtext/updatestatus/$baris->id"), l(t('Hapus'), "runningtext/hapus/$baris->id"));

  

  }else{

  

$rows[]=array($i+($page*10), 

            
$baris->message$stat[$baris->status], l(t('Edit|'), "runningtext/edit/$baris->id"), l(t('Aktifkan'), "runningtext/updatestatus_non/$baris->id"), l(t('hapus'), "runningtext/hapus/$baris->id"));

  

  

  }

    

  
$i++;

  }

  

/*  $sql2=db_query("SELECT COUNT(*) from {runningtext}");

    $total=db_result($sql2);

*/  

    
db_set_active('default');
    
$output theme('table'$header$rows);
    
$output .= theme('pager'NULL100);
    
//    $output .= "<i><br><b>Keterangan</b><br>Jumlah Total:</i>  ".$total;
    
return $output

}

?>

Ini adalah contoh fungsi untuk modul running_text. Untuk akses database aplikasi (data_mon2), kita gunakan fungsi :

db_set_active('monitor');

Dan kemudian kita buat tabel yang mengakses database tadi. Sebelum dilempar ke output, jangan lupa untuk mengembalikannya ke database engine drupal (default) dengan menuliskan kode

db_set_active('default');