Minggu, 22 November 2009

Tentang ADOdb dan Class MySQL, SQLite (PHP)

Ketika kita membangun aplikasi berbasis web yang dinamis, semisal sistem informasi manajemen atau yang lebih sering dikenal dengan sebutan SIM, maka tidak pelak dibutuhkan sebuah bahasa pemrograman dan database. Dan dalam hal ini akan dibahas salah satu komponennya yaitu komunikasi bahasa PHP dengan database MySQL. Untuk melakukan manipulasi data pada database, maka sudah disediakan fungsi-fungsi dalam PHP, namun akan lebih praktis lagi jika fungsi-fungsi yang terpisah itu disusun dalam sebuah fungsi yang dapat dipanggil secara berulang-ulang. Dan fungsi-fungsi ini kita bungkus dalam sebuah class, sehingga dalam penggunaannya kita tinggal mengincludekannya saja.

Dan inilah yang dilakukan oleh ADOdb, namun lebih dari itu ia mendukung tidak hanya satu database saja.

Secara sederhana ADOdb ini adalah sebuah layer tambahan yang menjembatani berbagai database – MySQL, Oracle, MSQL, Sybase, Informix, PostgreSQL, FrontBase, SQLite, Interbase, Foxpro, Access, ADO, DB2, SAP DB dan ODBC – dengan bahasa pemrograman PHP, sehingga dengan mudah kita dapat menggunakan dan beralih database sesuai yang kita perlukan. Secara skematis hal ini dapat digambarkan di bawah ini.


Jika PHP telah menyediakan fungsi-fungsi manipulasi untuk masing-masing database, maka ADOdb berperan sebagai Abstraction layer seperti terlihat pada gambar di atas. Dalam mengaplikasikannya kita gunakan contoh database dengan nama adodb dan tabel agama_ref dengan database MySQL. Untuk instalasi Apache, MySQL dan PHP anda dapat menggunakan XAMP, WAMP, atau bahkan menginstallnya satu persatu. Di sini saya gunakan WAMP.


Nah, di atas kita sudah memiliki sebuah database adodb dan tabel agama_ref dengan 5 data di dalamnya, yang selanjutnya akan kita gunakan dalam artikel ini.

Kita akan mencoba membuat program PHP dengan memanfaatkan ADOdb untuk menampilkan data dari database yang telah dibuat. Maka secara sederhana, file nya adalah sebagai berikut dan kita beri nama file ini contoh.php.


Sesuai isi file contoh.php di atas, kita pakai beberapa fungsi ADOdb, diantaranya adalah :

1. Mengincludekan ADOdb ke dalam program yang kita buat [baris ke-2].
2. Mendeklarasikan kelas ADOdb dengan parameter mysql sebagai databasenya [baris ke-3].
3. Memanggil fungsi connect dengan memberikan parameter host, user, password dan database yang digunakan, dalam hal ini akan menjalankan mysql_connect dan mysql_select_db [baris ke-4].
4. Menjalankan query SQL, untuk mengambil semua data dari tabel agama_ref, dalam hal ini akan menjalankan mysql_execute [baris ke-5].
5. Untuk mendapatkan hasil berupa array 2 tingkat [baris ke-6].
6. Kemudian baris ke-8 sampai 12 adalah untuk menampilkan data yang telah didapatkan.

Maka jika dijalankan dalam browser akan didapatkan hasil sebagai berikut :


Dengan menggunakan ADOdb ini, jika kita kemudian akan melakukan migrasi dari MySQL ke PostgreSQL atau oracle atau bahkan database lainnya, maka kita tinggal mengganti baris ke-3 [nama database yang digunakan] dan ke-4 [fungsi untuk melakukan koneksi] dan file kita masih dapat memberikan hasil yang sama dan berjalan dengan baik.

Beberapa fungsi yang sering saya gunakan dalam manipulasi database, antara lain :
1. Melacak id terakhir yang dimasukkan dalam database secara autoincrement, untuk memanggilnya digunakan fungsi $db−>Insert_ID();
2. Melakukan transaction, untuk mengesekusi beberapa query atau membatalkannya jika terdapat beberapa kekeliruan. Fungsi yang digunakan $db−>BeginTrans(); kemudian beberapa query dan diakhiri dengan $db−>CommitTrans(); atau $db−>RollbackTrans();
3. Melakukan insert, update dan delete dengan fungsu $db−>Execute();

Sebagai catatan, transaction hanya dapat diterapkan pada tabel dengan tipe innodb. Jika anda hanya menggunakan ADOdb untuk database MySQL, maka ada baiknya jika hanya menyertakan file-file yang memang dipakai saja, diantaranya adalah
* adodb.inc.php
* adodb-lib.inc.php
* adodb-time.inc.php
* drivers/adodb-mysql.inc.php
* license.txt (untuk alasan legal)
* adodb-php4.inc.php
* adodb-iterator.inc.php

Anda dapat mengexplore lebih jauh fungsi-fungsi yang disuport oleh ADOdb dengan mendownload sourcenya di sini atau dapat didownload dari internet untuk mendapatkan versi terakhinya.

Namun saya juga telah mengembangkan sebuah class yang dapat melakukan fungsi-fungsi di atas untuk database mysql dan sqlite. Jika anda tertarik dapat anda download di sini.

Di dalamnya terdapat file contoh untuk mamanfaatkan class tersebut.

Tidak ada komentar: