Bug Fixing ADOdb : Koneksi multiple database ->in xaraya

Judul di atas sebenernya dah ada di blog nya mas KurniawaDP (klik disini), makasih ya mas :-D . Cuma berhubung saya pake xaraya (cms) ada sedikit tambahan.
Setelah mengubah file “adodb/drivers/adodb-mysql.inc.php” kita masih perlu mengubah file “includes/xarDB.php”.
Secara default, cms xaraya menggunakan satu koneksi yang di buat pada file “var/config.system.php”, tapi dengan bantuan mas Kurniawan tadi kita bisa membuat beberapa koneksi database.
Yang pertama adalah buat satu koneksi lagi pada fungsi “xarDB_init” seperti dibawah ini :
$dbconn =& xarDBNewConn(); // pemanggilan fungsi default
Pada pemanggilan pertama fungsi “xarDBNewConn()” tidak disertakan argument, hal ini (secara default) akan membuat xaraya menggunakan koneksi dari file “var/config.system.php”. Koneksi yang digunakan adalah koneksi dengan index[0]. Selanjutnya kita dapat menambahkan koneksi yang kita butuhkan :
$dbconn =& xarDBNewConn( array( 'databaseType' => 'mysql',
'databaseHost' => 'localhost',
'databaseName' => 'jepe_db',
'userName' => 'jepe',
'password' => 'janganTanya'));
// deklarasi tambahan
.
Untuk pemanggilan kedua ini kita menyertakan argument pada fungsi “xarDBNewConn()” yaitu variable-variable yang digunakan pada file “config.system.php” (tentunya dengan nilai variable adalah koneksi untuk database yang lain). Secara otomatis koneksi ini akan mendapatkan index[1].

Anda boleh menggunakan nama variable yang sama( $dbconn ) untuk digunakan pada pemanggilan fungsi “xarDBNewConn()”. Hal ini karena koneksi yang terjadi berdasarkan “key” yang dihasilkan oleh setiap koneksi baru dan setiap “key” untuk setiap koneksi pasti berbeda.

Fungsi xarDBGetConn
Masih pada file yang sama kita akan temukan satu fungsi sperti dibawah ini :
function &xarDBGetConn($index=0)
{
// we only want to return the first connection here
// perhaps we'll add linked list capabilities to this soon
return $GLOBALS['xarDB_connections'][$index];
}

fungsi diatas secara default hanya menggunakan koneksi dengan index[0] oleh karena itu kita tambahkan fungsi untuk pemanggilan koneksi untuk index selanjutnya.

function &xarDBGetConn2($index=1)
{
// we only want to return the first connection here
// perhaps we'll add linked list capabilities to this soon
return $GLOBALS['xarDB_connections'][$index];
}

fungsi ini akan dipanggil pada class setiap modul .

class xarHello{
/* ------------------------------------------------------------------------------
* Properties
* ------------------------------------------------------------------------------ */
// database connection object
var $dbconn;
// database connection to server pemprov
var $dbconn2;
// error message
var $errormsg;
/* ------------------------------------------------------------------------------
* Methods
* ------------------------------------------------------------------------------ */

/**
* Constructor
*
*/
function __construct() {
// Get database setup
$this->dbconn =& xarDBGetConn();
$this->dbconn2=& xarDBGetConn2();
}
}

dan Koneksi siap digunakan :-D

Klo ada yang bisa memberikan metode yang lebih efektif dan efisien untuk koneksi multidatabase pada xaraya sangat saya tunggu. :-)

6 Responses to “Bug Fixing ADOdb : Koneksi multiple database ->in xaraya”

  1. jepe Says:

    test avatar

  2. hyorinmaru Says:

    Avatarmu kamu taruh di gravatar ato yg di WP? Eh, btw, aq dengar gravatar n WP mo jadi satu. Ntah udah ato belum… :-)

  3. acep Says:

    Mas, saya baru pake XAraya.
    trus bagaimana ya caranya buat ngubah theme default xaraya menjadi theme
    yang kita punya.

    Trim’s

  4. agus suhartono Says:

    mas artikel ini boleh saya post di id.xaraya.com?

  5. agus suhartono Says:

    bukankah fungsi:

    function &xarDBGetConn($index=0)

    nggak perlu kita ubah jadi

    function &xarDBGetConn2($index=1)

    karena kita cukup memanggil & xarDBGetConn( 1 ) nggak perlu & xarDBGetConn2()

  6. fridayana Says:

    Wah http://blog.kurniawandp.com/index.php/archives/17 dead links mas,, ada yg punya arsipnya??

Leave a Reply