Cara membuat library koneksi CodeIgniter dengan Database IBM DB2 dan Adodb

Selamat berjumpa kembali dengan tutorial kami di Media Kreatif. Pada kesempatan kali ini kita akan membahas tentang bagaimana caranya menghubungkan Aplikasi CodeIgniter dengan Database DB2

Sekedar diketahui bersama, DB2 adalah Apalikasi Database yang dikembangkan oleh IBM yang kemampuannya jauh lebih tinggi dibandingkan Oracle. Tentunya biaya untuk pembelian lisensi penggunaan database ini sudah dapat kita tebak, harganya selangit ;( , tapi tenang, kalau sekedar untuk belajar kita bisa mencari versi freenya yang sudah disediakan oleh IBM

 

Berkenaan dengan CodeIgniter, ternyata database Driver pada CodeIgniter belum mendukung untuk akses ke database DB2, sehingga kita memerlukan Database Driver lain yang akan kita tambahkan pada library CodeIgniter, database Driver yang dimaksud dalam hal ini adalah Adodb, bahkan untuk mengakses Database Oracle pun, Database driver pada CodeIgniter juga akan mengalami kendala ketika harus berhadapan dengan REF CURSOR pada Oracle, dan lagi - lagi Adodb menjadi pilihan untuk mengatasi masalah tersebut.

Adapun langkah - langkah yang harus dilakukan dalam proses koneksi DB2 dengan CodeIgniter antara lain :

1. Download Database Driver Adodb

Adodb merupakan database driver yang sangat powerful untuk keperluan akses ke beberapa Database server. Adodb dapat kita peroleh dengan gratis pada alamat berikut :
» . phplens.com
» . Source forge

Setelah mendownload Adodb, jangan lupa extract dan copy folder Adodb ke direktory

/application/libraries/

 


2. Buat class library Adodb » /application/libraries/Adodb.php

Buat file berikut dan tempatkan pada direktori /application/libraries/ bersebelahan dengan folder adodb yang sudah kita copykan sebelumnya.

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

	class Adodb 
	{
		function Adodb() 
		{
			if (!class_exists('ADONewConnection') )
			{
				 require_once(APPPATH . 'libraries/adodb/adodb.inc.php');
			}

			$ci =& get_instance();
			$db_var = false;
			$debug = false;
			
			// try to load config/adodb.php
			// extra parameter comes from patch at http://www.codeigniter.com/wiki/ConfigLoadPatch/
			// without this patch, if config/adodb.php doesn't exist, CI will display a fatal error.
			
			if (!isset($dsn) or $dsn == NULL)
			{
				// fallback to using the CI database file
				include(APPPATH . 'config/database.php');
				$group = 'default';
				$dsn = $db[$group]['dbdriver'].'://'.$db[$group]['username']
					   .':'.$db[$group]['password'].'@'.$db[$group]['hostname']
					   .'/'.$db[$group]['database'];
			}
			
			// $ci is by reference, refers back to global instance
			$ci->adodb = ADONewConnection($dsn);

			$ci->db    = $ci->adodb;
			
			if ($debug)
			{
				$ci->adodb->debug = true;
			}
			$ci->db   = $ci->adodb;
			return $this;
		}
	}
?>

3. Download php_ibm_db2.dll

File tersebut merupakan library db2 client untuk PHP yang disediakan oleh IBM untuk kita tambahkan pada extensi pada PHP kita. Download file tersebut pada alamat berikut :
Download php_ibm_db2.dll

Setelah mendownload file tersebut, silahkan copy file tersebut pada direktory extensi php kita, biasanya terletak pada /php/ext/ , setelah memasukkan file tersebut, jangan lupa untuk mengaktifkannya dengan cara menambahkan kode berikut pada konfigurasi php.ini, cari file php.ini kemudian edit dan tambahkan kode

extension=php_ibm_db2.dll

Pada deretan daftar extensi php kita. setelah selesai dengan proses tersebut, kita harus restart apache kita untuk mengaktifkan extensi db2 client tersebut pada php komputer kita.

 


4. Setting konfigurasi database CodeIgniter » /application/config/database

 

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| DATABASE CONNECTIVITY SETTINGS
| -------------------------------------------------------------------
| This file will contain the settings needed to access your database.
|
| For complete instructions please consult the 'Database Connection'
| page of the User Guide.
|
| -------------------------------------------------------------------
| EXPLANATION OF VARIABLES
| -------------------------------------------------------------------
|
|	['hostname'] The hostname of your database server.
|	['username'] The username used to connect to the database
|	['password'] The password used to connect to the database
|	['database'] The name of the database you want to connect to
|	['dbdriver'] The database type. ie: mysql.  Currently supported:
				 mysql, mysqli, postgre, odbc, mssql, sqlite, oci8
|	['dbprefix'] You can add an optional prefix, which will be added
|				 to the table name when using the  Active Record class
|	['pconnect'] TRUE/FALSE - Whether to use a persistent connection
|	['db_debug'] TRUE/FALSE - Whether database errors should be displayed.
|	['cache_on'] TRUE/FALSE - Enables/disables query caching
|	['cachedir'] The path to the folder where cache files should be stored
|	['char_set'] The character set used in communicating with the database
|	['dbcollat'] The character collation used in communicating with the database
|				 NOTE: For MySQL and MySQLi databases, this setting is only used
| 				 as a backup if your server is running PHP < 5.2.3 or MySQL < 5.0.7
|				 (and in table creation queries made with DB Forge).
| 				 There is an incompatibility in PHP with mysql_real_escape_string() which
| 				 can make your site vulnerable to SQL injection if you are using a
| 				 multi-byte character set and are running versions lower than these.
| 				 Sites using Latin-1 or UTF-8 database character set and collation are unaffected.
|	['swap_pre'] A default table prefix that should be swapped with the dbprefix
|	['autoinit'] Whether or not to automatically initialize the database.
|	['stricton'] TRUE/FALSE - forces 'Strict Mode' connections
|							- good for ensuring strict SQL while developing
|
| The $active_group variable lets you choose which connection group to
| make active.  By default there is only one group (the 'default' group).
|
| The $active_record variables lets you determine whether or not to load
| the active record class
*/

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

$db['default']['hostname'] = "driver={IBM db2 odbc DRIVER};Database=DB_NAME;hostname=DB_HOSTNAME;port=50000;protocol=TCPIP;"."uid=DB_USER; pwd=DB_PASSWORD";
$db['default']['username'] = 'DB_USER';
$db['default']['password'] = 'DB_PASSWORD';
$db['default']['database'] = 'DB_NAME';
$db['default']['dbdriver'] = 'odbc_db2';
$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 */

Library database ini tidak perlu kita load pada CodeIgniter seperti yang biasa kita lakukan pada file /applications/config/autoload.php , hal ini dikarenakan pada CodeIgniter tidak terdapat database driver odbc_db2 sehingga kalau kita load library databasenya akan memunculkan pesan koneksi eror pada CodeIgniter. Yang harus kita load dalam hal ini adalah library Adodb yang sudah kita buat sebelumnya, yaitu Adodb.php. Buka file /applications/config/autoload.php , kemudian load library Adodb dengan cara menambahkan adodb pada bagian berikut :

$autoload['libraries'] = array('adodb');

Jangan lupa untuk menyesuaikan konfigurasi database sesuai dengan kebutuhan kita, yaitu :

 

  1. DB_NAME » NAMA DATABASE
  2. DB_HOSTNAME » IP DATABASE SERVER
  3. DB_USER » USERNAME DATABASE
  4. DB_PASSWORD » PASSWORD DATABASE

Setelah melakukan langkah - langkah diatas dengan benar, silahkan coba untuk menjalankan Aplikasi CodeIgniter kita yang sudah kita hubungkan dengan Database DB2. Hal yang perlu diingat adalah, database driver yang kita gunakan selanjutnya bukan lagi milik CodeIgniter, akan tetapi adalah milik Adodb, sehingga perintah - perintahnyapun akan berubah seseuai dengan Adodb seperti terlihat pada contoh berikut.

$this->db->query('sql command') &rquo; $this->db->Execute('sql command')
->result() » ->FetchRow()
->num_rows() » ->RecordCount()
//Dan lain - lain

Sekian dulu tutorial yang bisa kami sampaikan untuk anda, selamat mencoba dan salam kreatif


Komentar pembaca

sadammin ada contoh referensi perintah perintah yang digunakan versi adodb, soalnya sy kesulitan mencari perintah perinta sql querynya min versi adodbposting pada :2019-01-29 10:44:16

Tulis komentar

 




Today
Yesterday
All visitor

Pelatihan Website bersama Media Kreatif Indonesia

laboratorium Komputer dan teknology Kampus I ITN Malang 2013-07-09 08:00:00
 

Pelatihan Sistem Informasi

SMK Negeri 1 Lumajang 2013-05-01 12:00:00
 

Bakti sosial Teknik Kimia

Panti Asuhan Miftahul Huda II 2013-03-26 11:00:00
 

Bagaiamana metode pengajaran teknology yang paling efektif menurut anda ?

Beli buku, kemudian mempelajari sambil praktek
Mengikuti kursus sesuai bidang teknology
Belajar sendiri secara otodidak
Belajar dari contoh - contoh aplikasi yang sudah jadi
Belajar dari contoh - contoh yang paling sederhana
Semua pilihan benar