Membuat Koneksi Oracle Database 11g dan PHP

PHP merupakan salah satu scripting language yang paling banyak digunakan untuk website. Banyak website-website ternama seperti Facebook, WordPress, dan Digg yang menggunakan PHP dalam pengembangannya. Sedangkan Oracle Database adalah RDBMS komersial yang banyak dipilih perusahaan-perusahaan besar karena memiliki tingkat skalabilitas tinggi.

Mengkombinasikan PHP dan Oracle bukanlah hal yang tidak mungkin untuk dilakukan. PHP memiliki extension OCI8 yang dapat kita gunakan untuk mengkoneksikan Database Oracle 12c, 11g,10g, 9i ataupun 8i dengan aplikasi web yang dibuat menggunakan PHP. Extension PHP untuk database oracle sudah ada didalam file instalasi PHP5 tapi bisa juga diunduh secara terpisah. Dalam extension ini terdapat fitur-fitur seperti connection caching(pooling), privileged connection, statement caching dan row pre-fetching yang dapat digunakan. Lalu bagaimana cara untuk menggunakan extension OCI8 untuk menghubungkan aplikasi web kita dengan database Oracle? Berikut langkah-langkahnya:

Install extension

  1. Install webserver (misalkan: Apache, NGINX) terlebih dahulu
  1. Jalankan web server
  1. Buka file php.ini pada direktori webserver anda
  1. Cari keyword extension=php_oci8_11g.dll
  2. JIka keyword tidak bisa ditemukan, unduh file zip PHP Extension untuk Oracle php_oci8-2.0.6-5.5-ts-vc11-x64.zip dari https://pecl.php.net/package/oci8/2.0.6/windows. Ekstrak kemudian salin file dll ke folder c:/…/php/ext.
  3. Hilangkan tanda titik koma “;” yang ada di depan extension=php_oci8_11g.dll

Berikut tampilan dari phpindo jika OCI8 sudah terinstall dengan baik:

Install extension

 

Koneksi database dan menggunakan fungsi pada extension

  1. Tentukan variable $username, $password, dan $db untuk database Oracle
  2. Tentukan variable $db sebagai SID database pada <Oracle11g>/NETWORK/ADMIN/tnsnames.ora 

$username=’OE’;
$password=’OE’;
$db='(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)’;

Jika HOST, PORT or SERVICE_NAME database Oracle anda berbeda dengan script diatas, gantilah sesuai dengan konfigurasi yang anda buat.

  1. Koneksi dengan oci_connect() method:

$connection = oci_connect($username, $password, $db);

4. JIka ada error terjadi pada waktu koneksi dengan database Oracle, maka retrieve pesan errornya menggunakan fungsi oci_error() dan tampilkan pesannya:

if (!$connection) {

$e = oci_error();

echo htmlentities($e[‘message’]);

}

5. Prepare statement oracle dengan menggunakan fungsioci_prepare() :

$stmt = oci_parse($connection, “CREATE TABLE OE.WLSLOG(time_stamp VARCHAR2(255) PRIMARY KEY,category VARCHAR2(255),type VARCHAR2(255),servername VARCHAR2(255), code VARCHAR2(255),msg VARCHAR2(255))”);

6. Eksekusi SQL statement menggunakan fungsioci_execute() :

$r = oci_execute($stmt);

7. Jalankan webserver dan buka script PHP yang sudah dibuat menggunakan browser.

Berikut ini contoh script PHP createTable.php,  lengkap yang biasa anda gunakan untuk membuat table pada database Oracle :

<?php

$username=’OE’;

$password=’OE’;

$db='(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = XE)

)

)’;

$connection = oci_connect($username, $password, $db);

if (!$connection) {

$e = oci_error();

echo htmlentities($e[‘message’]);

}

$stmt = oci_parse($connection, “CREATE TABLE OE.WLSLOG(time_stamp VARCHAR2(255) PRIMARY KEY,category VARCHAR2(255),type VARCHAR2(255),servername VARCHAR2(255), code VARCHAR2(255),msg VARCHAR2(255))”);

if (!$stmt) {

$e = oci_error($connection);

echo htmlentities($e[‘message’]);

}

$r = oci_execute($stmt);

if (!$r) {

$e = oci_error($stmt);

echo htmlentities($e[‘message’]);

}else{

echo ” Created table\n\n”;

}

$sql = “INSERT INTO OE.WLSLOG(time_stamp,category,type,servername,code,msg) VALUES(‘Apr-8-2014-7:06:16-PM-PDT’,’Notice’,’WebLogicServer’,’AdminServer’,’BEA-000365′,’Server state changed to STANDBY’)”;

$stmt = oci_parse($connection, $sql);

if (!$stmt) {

$e = oci_error($connection);

echo htmlentities($e[‘message’]);

}

$r = oci_execute($stmt);

if (!$r) {

$e = oci_error($stmt);

echo htmlentities($e[‘message’]);

}else{

echo ” Added a row\n\n”;

}

$sql = “INSERT INTO OE.WLSLOG(time_stamp,category,type,servername,code,msg) VALUES(‘Apr-8-2014-7:06:17-PM-PDT’,’Notice’,’WebLogicServer’,’AdminServer’,’BEA-000365′,’Server state changed to STARTING’)”;

$stmt = oci_parse($connection, $sql);

if (!$stmt) {

$e = oci_error($connection);

echo htmlentities($e[‘message’]);

}

$r = oci_execute($stmt);

if (!$r) {

$e = oci_error($stmt);

echo htmlentities($e[‘message’]);

}else{

echo ” Added a row\n\n”;

}

$sql = “INSERT INTO OE.WLSLOG(time_stamp,category,type,servername,code,msg) VALUES(‘Apr-8-2014-7:06:22-PM-PDT’,’Notice’,’WebLogicServer’,’AdminServer’,’BEA-000360′,’Server started in RUNNING mode’)”;

$stmt = oci_parse($connection, $sql);

if (!$stmt) {

$e = oci_error($connection);

echo htmlentities($e[‘message’]);

}

$r = oci_execute($stmt);

if (!$r) {

$e = oci_error($stmt);

echo htmlentities($e[‘message’]);

}else{

echo ” Added a row\n\n”;

}

?>

Berikut tampilan script pada web browser.

Install extension 2

 

Selamat mencoba!

PT. Inovasi Informatika Indonesia (i3) membantu profesional TI Indonesia dalam mencapai potensi terbaiknya. Kami menyelenggarakan pelatihan teknologi dari beberapa principal terkemuka seperti CompTIA, ECCouncil, EMC, Oracle, RedHat, dan VMware.
Selain sebagai tempat training IT yang banyak direkomendasikan oleh praktisi, i3 juga menawarkan jasa IT Services di 4 bidang utama keahlian: Open Source, Virtualisasi, Database, dan IT Security. Semua training dan services ditangani oleh instructor dan konsultan yang berpengalaman dan memiliki sertifikasi internasional.
Informasi lebih lanjut tentang lengkap jadwal pelatihan dan layanan IT silahkan hubungi kami melalui info@i-3.co.id

Leave a Reply

Your email address will not be published. Required fields are marked *