Home > IT Learning > Oracle Vs PHP

Oracle Vs PHP

Pembaca, teman-teman, serta pengunjung yang mampir di blogku, saya mencoba berbagi ilmu dalam bidang yang kebetulan sedang saya pelajari, yaitu penggunaan database Oracle dengan pemrogramanPHP. Kebetulan pula, saya yang sedang kepincut dengan software-software pemrograman/developing berbau bebas dan gratis ini mencoba menggunakan software database versi gratis dari Oracle 10g.

Generasi database Oracle 10g versi gratis adalah Oracle Database 10g Express Edition. Versi yang biasa disebut dengan Oracle Database XE ini mampu menangani data tersimpan hingga sebesar 4 GB. Yah, gak besar-besar amat sih seperti yang ditangani versi Enterprise-nya yaitu Oracle Database 10g Enterprise Edition. Tapi menurutku sudah cukup lumayan untuk program kelas kecil-menengah. Sistemnya yang web-based dan fitur-fitur canggihnya pun membuat kita serasa menggunakan phpMyAdmin untuk MySQL (bagi yang terbiasa dengan sistem database MySQL).

Kita dapat mendownload Oracle Database XE untuk Windows di sini. Kebetulan software Oracle XE yang aku pakai di komputerku adalah versi 10.2. Bila ada versi yang lebih baru, ya monggo didownload. Tugas pertama setelah mendownload kita tentu saja kita menginstall software gratis ini. Saat menginstall, pastikan isian username dan password untuk administrator telah benar.

Nah, untuk PHP-nya aku menggunakan paket AppSev versi 2.5.4a. AppServ v2.5.4a ini menyediakan 4 paket software gratis yaitu,
• Apache Web Server v2.0.54
• PHP Script Language v5.0.4
• MySQL Database v4.1.12a
• phpMyAdmin Database Manager v2.6.2-pl1

Lho, buat apa ada MySQL lagi? Kan sudah ada Oracle. Ya, kalo kita tidak ingin memakai MySQL, kita tinggal menghilangkan centang pada checkbox pilihan MySQL, ketika sedang menginstall AppServ.
Nah, setelah kita telah berhasil menginstall kedua software tersebut, maka langkah awal adalah menghidupkan service Oracle Database XE. Kita cukup mengklik shortcut pada start menu seperti berikut:

oracle2

Untuk masuk ke Database Home Page (admin database), klik Go To Database Home Page pada start menu, atau kita dapat juga mengetikkan URL http://127.0.0.1:8080/htmldb di browser. Berikut ini tampilan awal admin Oracle Database XE setelah login sebagai administrator.

ora-homepage

Mengaktifkan dinamic extension oracle pada PHP

PHP menyediakan library-library untuk dapat berinteraksi dengan database Oracle. Pada PHP v5.0.4 paket AppServ secara default listing pada file php.ini tidak mengaktifkan penggunaan dinamic extensions (library) untuk database Oracle. Untuk itu sebelum masuk pada pemrograman, kita benahi file php.ini yang terletak pada folder c://windows. Lalu hilangkan karakter titik-koma didepan baris yang menampilkan teks berikut :

extension=php_oci8.dllextension=php_oracle.dll

Lalu kita restart service Apache Web Server. Maka PHP telah siap berhubungan dengan Oracle Database XE.

 


Menggunakan Sample User Account (HR)

Pada sistem database Oracle XE, kita disediakan sebuah user sampel database yaitu HR. User ini memiliki sebuah sejumlah tabel-tabel database yang berisikan sampel data dari sebuah Human Resource Department. Nah, untuk contoh program yang kubuat menggunakan user HR ini. Namun secara default user HR ini locked (tidak aktif). Untuk dapat mengaktifkan user HR, berikut langkah-langkahnya:

 

1. Login sebagai database administrator.

2. Klik ikon Administration, dan klik Database Users

3. Klik ikon schema HR.

4. Lalu masukkan password dan confirm password. Ketik saja “oracle”. Pada Account Status, pilih Unlocked

5. Pada Roles, pilih/centang Connect dan Resource.

6. Klik tombol Alter User.

Baru setelah itu kita log-out dari user administrator dan login sebagai user HR. Untuk dapat melihat table-tabel apa saja yang dapat diakses HR, maka klik Object Browser. Lalu pilihlah kategori tables pada select box di sebelah kiri atas.

oracle3

Kode Program PHP
Untuk pemrograman di PHP, kita membutuhkan 2 buah file PHP yaitu, koneksi.php dan index.php. File-file ini nantinya diletakkan di folder c://appserv/www/orcl. File Koneksi.php berisi baris perintah untuk memanggil koneksi ke database Oracle XE. Sedangkan file index.php merupakan program utama. Berikut ini listing program file koneksi.php:

<?$USER=”hr”;$PASS=”oracle”;$SID=”XE”;$DBSID=”(DESCRIPTION=(ADDRESS_LIST=ADDRESS=(PROTOCOL=TCP)(HOST= 127.0.0.1)(PORT = 1521)))(CONNECT_DATA=(SID=XE)))”;$conn=OCILogon($USER,$PASS,$SID); ?>

Kode program index.php :

<?include(“koneksi.php”);$selecttable = addslashes(trim($_POST[“selecttable”]));$ordertable = addslashes(trim($_POST[“ordertable”]));$order = addslashes(trim($_POST[“asctable”]));?><TABLE border=”1″ cellpadding=”0″ cellspacing=”0″ bgcolor=”orange” align=”center”> <TR> <TD style=”font-family:verdana; font-size:12px; padding:5px 5px;” align=”left”> <b>Crizosa OracleSQL beta 1.0 <br/> for Employees Table</b> </TD> </TR> <TR> <TD width=”650″ valign=”middle” style=”padding:5px 0px;”> <form action=”<?php echo $_SERVER[PHP_SELF];?>” method=”post”> SELECT last_name, <select name=”selecttable”> <option value=””></option> <option value=”JOB_ID”>Job</option> <option value=”SALARY”>Salary</option> <option value=”FIRST_NAME”>First Name</option> </select> FROM employees ORDER BY <select name=”ordertable”> <option value=””></option> <option value=”JOB_ID”>Job</option> <option value=”SALARY”>Salary</option> <option value=”LAST_NAME”>Last Name</option> </select> <select name=”asctable”> <option value=””></option> <option value=”ASC”>Ascending</option> <option value=”DESC”>Descending</option> </select> ; <input type=”submit” name=”execute” value=”execute”> </form> </TD> </TR> <? if ($selecttable != “” AND $ordertable !=””) { echo “<TR> <TD style=\”padding:5px 5px;\”> <b>The query is :</b> <br /> SELECT last_name, $selecttable FROM employees ORDER BY $ordertable $order ; </TD> </TR>”; $que_orcl = “SELECT last_name,$selecttable FROM employees ORDER BY $ordertable $order”; $parse_que = OCIParse($conn,$que_orcl); OCIExecute($parse_que); $i=1;?> <TABLE border=”1″ cellpadding=”0″ cellspacing=”0″ align=”center”> <TR> <TD width=”10″ bgcolor=”#EAEAEA”>No. </TD> <TD width=”200″ bgcolor=”#EAEAEA”>LAST_NAME </TD> <TD width=”200″ bgcolor=”#EAEAEA”><?echo$selecttable;?> </TD> </TR><? while(OCIFetchInto($parse_que,$emp,OCI_ASSOC)) { echo “<TR bgcolor=\”#FFFF99\”> <TD> $i. </TD> <TD>”; echo $nama = $emp[“LAST_NAME”].”</TD>”; echo “<TD>”; echo $job = $emp[“$selecttable”].”</TD>”; echo “</TR>”; $i+=1; }?><? } else { echo “ <TR> <TD style=\”padding:5px 5px;\”> <b> Query belum ditentukan! </b> </TD> </TR>”; } ?>
</TABLE>


Berikut tampilan program:

ora-default

ora-result

Program yang kubuat ini adalah program untuk mengeksplorasi data-data di tabel employees. Kita dapat menentukan field kedua selain LAST_NAME untuk ditampilkan.

Categories: IT Learning
  1. yadhi
    September 11, 2007 at 12:38 am

    hehe … bagus nih …😀 … untung aja ada yg versi gratisan, jd bisa blajar tanpa takut dikejar2 razia software😀

  2. September 11, 2007 at 1:14 am

    @yaghi
    hohoho.. oke deh mas! yang penting oracle teteup nomor satu lah! btw, keluarga barunya sekarang tinggal dimana?
    selamat yo mas!

  3. September 11, 2007 at 1:26 am

    @yadhi
    hehehe.. yang penting, sudah softwarenya top abis, aman, gratis, bisa buat rejeki pula! 🙂 :d

    btw, apa kabar mas?

  4. aUL
    November 30, 2007 at 8:37 am

    mas, keren banget informasi nya. TOP lah
    Mas..mau nanya yach?
    saya DBA n Programmer Oracle .. saya pk dev6i bisa gak program yg sudah ada saya convert ke oracle web based?
    Klo bisa tolong dibimbing langkah2, terimakasih mas.

  5. bejo
    July 27, 2008 at 12:25 pm

    halooo mas aq kan bru bljr oracle nehh…nahhh pas liat oracle 10g xe kok beda lg ya fungsinya…..nah tuh fungsi2 d oracle 10 g ama d 10 gxe….sama g….bs g klo fungsi 10 g xe d pakai d 10g(ocilogon —->oci_conn) ……maksihhh ya….mohon informance nya. ya…

  6. vony
    September 23, 2008 at 1:02 am

    maaf nih aku mau tanya kok knp keluar pesan seperti ini :
    “Fatal error: Call to undefined function OCILogon() in C:\AppServ\www\orcl\config.php on line 1”

    aku jadi bingung nih

  7. vony
    September 23, 2008 at 1:05 am

    nah sekarang jadi “Fatal error: Call to undefined function OCILogon() in C:\AppServ\www\orcl\config.php on line 5”

  8. September 24, 2008 at 4:21 am

    @vony
    coba anda cek di file php.ini yang ada di direktori windows. anda hilangkan/hapus karakter ‘;’ (titik-koma) pada baris :
    ;extension=php_oci8.dll
    ;extension=php_oracle.dll
    setelah itu save file tersebut, dan restart ulang webserver apache anda.
    semoga membantu🙂

    @bejo
    yap, fungsi di oracle 10g EE,SE dan oracle 10g XE, sama mas.

    @aUL
    saya blom pernah mencoba oracle dev6i, mas. tapi saya kira bisa. karena masih dalam satu platform oracle.

  9. ien
    January 27, 2009 at 3:41 am

    hi, saya sekarang lg belajar gmn caranya connect dr php ke oracle xe. Saya sudah uncomment php_oci8.dll di php.ini tp tetap aja gak bisa connect ke oracle. Apa yg salah ya?
    Thanks

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: