Koneksi PHP 5, Zend Core dan Oracle 10g XE

ZEND CORE for ORACLE
Komunikasi ke database Oracle dari PHP dapat dilakukan dengan beberapa cara seperti dengan Oracle Install Client
atau dengan Zend Core for Oracle. Saat ini saya hanya akan menjelaskan pengalaman saya mengenai koneksi ke Database Oracle melalui Zend Core yang akan dijelaskan dibawah.

Zend Core for Oracle adalah Engine PHP yang dibuat untuk koneksi antara PHP dan Oracle seperti versi Oracle 8i, 9i dan 10g. Sewaktu tulisan ini dibuat versinya sudah mencapai 1.5. Zend Core for Oracle dibundle dengan Apache 2 dan PHP 5 yang didesain untuk mencapai kinerja yang maksimal, dioptimisasi untuk Oracle 10g XE, aman, cepat, dan berita gembiranya adalah aplikasi ini free / gratis !

Setelah instalasi dilakukan, karena Zend Core sebelumnya telah terpasang ternyata Apache Zend Core 2.01 bentrok dengan Zend Core for Oracle 1.5 sehingga Apache-nya tidak dapat dijalankan ! versi Apachenya pun berbeda, pada Zend Core 2.01 adalah versi 2.2.2 sedangkan Apache di Zend Core for Oracle adalah versi 2.0.59.

Setelah menguninstall Zend Core 2.01 dan menginstall Zend Core for Oracle dari awal, baru Apachenya dapat berjalan dengan normal.
Pada instalasi Zend Core for Oracle, secara standar ekstension koneksi untuk oracle (oci8-Oracle) sudah aktif tetapi ekstension MySQL dan mbstring tidak aktif, jika anda ingin menggunakan koneksi database ke MySQL juga dan biasa menggunakan PhpMyAdmin sebagai aplikasi untuk mengatur database mysql, anda harus mengaktifkannya terlebih dahulu dengan masuk ke Web UI Zend Core dengan alamat http://localhost/ZendCore/ lalu masukkan password yang telah anda masukkan sebelumnya sewaktu instalasi. Lalu masuk ke bagian CONFIGURATION > EXTENSIONS dan click pada tombol switch disebelah icon Lampu mysql – MySQL dan mbstring – Multibyte Character Processing dan simpanlah konfigurasi tersebut. Langkah berikutnya merestart ulang Apache dengan masuk ke Services di CONTROL PANEL > ADMINISTRATIVE TOOLS > SERVICES.

SETTING DI ORACLE 10g XE
Jika anda belum menginstall Oracle 10g XE, anda bisa menginstallnya dengan mengikuti langkah2nya di blog Install Cepat Oracle Database Express 10g pada Linux Fedora Core 5
Sebelum memulai, ada beberapa setting yang harus dipersiapkan didatabase XE agar testing koneksi ke Oracle ini dapat dilakukan. User yang akan digunakan adalah user yang sudah ada pada database XE, kita tinggal mengaktifkannya saja melalui Administrasi Database dengan login ke http://192.168.1.xxx:8080/apex (port dan server disesuaikan dengan setting anda) sebagai DBA lalu masuk ke bagian ADMINISTRATION > DATABASE USERS > MANAGE USERS.
Pilih user HR yang akan membawa anda kedalam mode rubah user. Isi passwordnya sesuai dengan yang anda inginkan, rubah status ACCOUNT STATUS dari Locked menjadi Unlocked dan tekan tombol ALTER USER untuk menyimpan hasil perubahannya. Setelah itu anda tinggal membuat script PHP yang akan berkomunikasi dengan Oracle.

rubah hr oracle

SCRIPT PHP
Koneksi dari php ke Oracle menggunakan fungsi oci_connect dengan format :
oci_connect(“namauser”,”passworduser”, “//ip_database_oracle/XE”);
tulisan XE pada akhir tulisan menunjukan bahwa kita akan menghubungkan php dengan Oracle XE.

Contoh scriptnya dapat dilihat dibawah ini :

<?php

/*************************************/
/* Konek ke oracle dengan setting :
/* username : hr
/* password : hr
/* ip / nama server oracle : 192.168.1.122
/*************************************/
$conn = oci_connect(‘hr’, ‘hr’, “//192.168.1.122/XE”);
if (!$conn) {

// menampilkan error ketika koneksi gagal
$e = oci_error();
echo htmlentities($e[‘message’]);
die;

}

// query untuk mengambil data employees
//////////////////////////////////////////
$query = ‘SELECT * FROM employees’;

// mempersiapkan query
//////////////////////////////////////////
$sth = oci_parse($conn, $query);
if (!$sth) {

$e = oci_error($conn);
echo htmlentities($e[‘message’]);
die;

}

// menjalankan query untuk mengambil data employees
//////////////////////////////////////////
$results = oci_execute($sth, OCI_DEFAULT);
if (!$results) {

$e = oci_error($sth);
echo htmlentities($e[‘message’]);
die;

}

// menampilkan hasil query pada browser
//////////////////////////////////////////
echo ‘<table border=1>’;
while ($row = oci_fetch_array($sth, OCI_RETURN_NULLS)) {

echo ‘<tr>’;
foreach ($row as $item) {

echo ‘<td>’.($item?htmlentities($item):’ ‘).'</td>’;

}
echo ‘</tr>’;

}
echo ‘</table>’;

// menutup koneksi database
//////////////////////////////////////////
oci_close($conn);
?>

Berikut ini tampilan yang merupakan hasil output dari script diatas (datanya sudah ada dalam tabel Oracle 10g XE)

oracle output

Koneksi antara PHP dan Oracle melalui Zend Core merupakan langkah yang besar bagi komunitas PHP. Apalagi jembatan tersebut didukung penuh oleh Zend Technologies sebagai pengembang bahasa PHP. Tidak dapat disangkal lagi bahwa pada tahun-tahun mendatang, aplikasi enterprise berbasis web terutama pada sisi front-end akan didominasi juga oleh PHP sebagai bahasa pemrograman web yang populer !

Proses instalasi dan cerita diatas menggunakan software – software seperti :

  1. Windows XP ServicePack 2
  2. PHP Version 5.1.6
  3. Oracle 10g XE
  4. ZendCoreforOracle-v.1.5-Windows-x86

Referensi mengenai PHP dan Oracle di situs internet:
Oracle PHP Developer Guide
Zend Core for Oracle

DeployPHP Series, Part 5: Zend Core for Oracle Quick Start

ORACLE 10g XE + PHP
Instalasi Oracle Instant Client di Linux

30 pemikiran pada “Koneksi PHP 5, Zend Core dan Oracle 10g XE

  1. salam,
    sebelumnya perkenalkan nama saya eko, staff tech. support pada perush. swasta, saya sudah kursus php dengan menggunakan xampp, dan saya lagi mencoba pakai zend framework (sudah download).
    saya minta tolong sekiranya tidak merepotkan, bagaimana caranya menyetting zend framwork pada xampp.
    terimakasih atas bantuannya, semoga ilmunya bermanfaat.
    salam,
    eko

  2. keren deh tutorialnya. thanx yah… saya udah kebantu banget setelah mas risnandar menyarankan saya di php milis untuk baca halaman ini.. thanx yah mas…

  3. Thx atas tutorialnya.
    Saya sudah coba zend corenya untuk oracle 10g setelah berkali2 gagal mencoba secara manual.

    Tapi yang saya tanyakan, Zend core ini sepertinya hanya untuk Fastcgi ya, trus kalo mau sebagai modul bagaimana?
    Terus kalo untuk di hosting apa sudah tersedia?

    Terakhir akhir2 ini ko sering errornya php-nya setalah sebulan tidak ada masalah.

    Satu lagi, kalau tanpa zend core kira2 bagaimana settingnya, saya udah muter2 cari di forum masih belum dapet kecuali ya pake zendcore ini.

    Terima kasih

    odon

  4. odon:Zend Core ini memang sudah built in harus memakai fastcgi karena solusi tersebut membuat php lebih stabil ketika menghandle request yang tinggi.

    Saat untuk hosting saya belum mencari 🙂 biasanya untuk keperluan oracle biasanya memakai dedicated server. Kalau php nya error mungkin ada konfigurasi komputer anda yang berubah.
    Untuk setting tanpa ZendCore bisa muter2 di internet. Saya sendiri memakai Zend Core karena kemudahannya.

    sulis: anda memakai zend core for oracle kan ? platformnya windows atau yang lain?

  5. saya pakai zend cor for oracle yg windows mas versi 2.5…??satu lagi pertanyaan saya ,,apakah saya perlu install php?trus taruh file kerjaan saya di mana ya,,,saya biasa pakai appserv lokasinya di www or htdocs,,makasih

  6. salam kenal juga.
    apache+php itu terpisah aplikasinya dengan mysql.
    biasanya sy install mysql dulu dengan installer terpisah lalu install zend core untuk apache bawaan zendcore+php, dan cara ini sudah sy lakukan berkali kali tanpa error.

    mungkin anda menginstall zend corenya saja yang apache dan mysqlnya bawaan dari WAMP sehingga konfigurasinya tidak cocok. untuk testing sebaiknya jangan install WAMP dulu ATAU dengan mencobanya di komputer yang lain. Bisa juga pake virtual pc dulu biar aman.

  7. sulis: maaf sy telat balas. Zend core itu sudah termasuk PHP jadi tidak usah diinstall lagi PHPnya. Kalau anda menginstall dengan konfigurasi apache yang sudah ada berarti htdocs nya sudah langsung bisa digunakan.

  8. gimana cara koneksi php ke oracle ? ?
    pokoknya all cara kerja oracle lahh ??
    coz saiia ma temen22 lum ngertii.
    tpii ditempat prakerin disuruh oracle oracle.
    bantuin yah secepatnya..

  9. Terima kasih Pak, artikelnya sangat membantu.

    Tapi, saya masih ada pertanyaan, kenapa milik saya belum bisa konek ya? “Internal Server Error”. Saya tidak mengerti apa masalahnya. oci8 sudah aktif sesuai dengan panduan ini, tetapi kenapa masih “Internal Server Error” ya? kalau saya sendiri, kemungkinan saya salah memasukkan ip database oracle-nya, ip itu bisa ditelusuri lagi di mana ya? coz saya tidak paham/lupa.

    Perlukah juga menginstal OracleClient-nya?

    Terima kasih jawabannya?

  10. Ping balik: Koneksi PHP 5, Zend Core dan Oracle 10g XE « Enterprise PHP Center

  11. saya mau tanya, saya udah coba seperti cara anda diatas tapi saya menemukan error seperti ini Fatal error: Call to undefined function oci_connect() in C:\xampp\htdocs\coba\koneksi.php on line 6 maksudnya apa ? dan cara pemecahannya bagaimana ? thx

  12. ane punya masalah dengan web server ane, kok gak bs konek ke localhost, database: oracle 9i,php, zend
    bs tlg pencerahan ny pak boss…
    yg kurang dimana nya ya….

    thanx

  13. halo pak risnandar,

    saya sedang ada kendala connect php ke oracle, semua perintah dari bapak sudah saya jalankan..tetapi ada error seperti ini

    oci_connect() [function.oci-connect]: ORA-12514: TNS:???? ?? ?? ???? ??? ???? ?? ??

    kira 2, bagaimana perbaikannya ya…
    saya memakai oracle 8.1.7(server ada di komputer lain)

    terima kasih

Tinggalkan Balasan ke adaaja Batalkan balasan