Welcome to Abdul Malik Ikhsan's Blog

php connect oracle

Posted in Tutorial PHP by samsonasik on November 18, 2007

Ceritanya, kemarin ada lowongan programmer php, databasenya pakai oracle, jadinya belajar php lagi deh πŸ™‚ , berikut contoh source php koneksi ke oracle.
——————-
Pertama, kita buat table di oracle, contoh table mahasiswa, berisi npm dan nama.
Kita ubah konfigurasi PHP-nya, di apache\bin\php.ini, seperti berikut :
bagian yang berhubungan sama oracle dan oci, “;”\comment nya dihilangkan..

Code:
extension=php_oracle.dll
extension=php_oci8.dll
;extension=php_oggvorbis.dll
extension=php_openssl.dll
;extension=php_parsekit.dll
extension=php_pdf.dll
extension=php_pdo.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll

————

Restart apache…(kalau perlu restart komputer)
—————
Selanjutnya, kita buat file phpnya :

Code:
<? // db.php ?>
<?
$db=”XE”;
$user=”system”;
$pass=”123″;
?>


—————————

Code:
<? //sql.php
$qmhs=”select * from mahasiswa”;
$qjmlmhs=”select count(*) from ($qmhs)”;
?>


—————————–

Code:
—————————-
<? //ora_db.php
class ora_db{
var $user,$pass,$db,$sql,$hasil,$kolom;
function konekdb(){
include “db.php”;
$this->user=$user;
$this->pass=$pass;
$this->db=$db;
return ocilogon($this->user,$this->pass,$this->db);
}
function sql($sql){
return ociparse($this->konekdb(),$sql);
}
function execute($hasil){
return ociexecute($hasil);
}
function hitungrow($sql){
$state=ociparse($this->konekdb(),$sql);
ociexecute($state);
ocifetch($state);
return ociresult($state,1);
}
function getarray($hasil){
return ocifetch($hasil);
}
function cols($hasil,$kolom){
return ociresult($hasil,$kolom);
}
function free($hasil){
return oci_free_statement($hasil);
}
}
?>


——————————

Code:
<? include “ora_db.php” ?>
<? //prj.php
class prj extends ora_db{
var $qmhs,$qjmlmhs,$edit;
function seleksimhs(){
include “sql.php”;
$this->qmhs=$qmhs;
return $this->sql($this->qmhs);
}
function jmlmhs(){
include “sql.php”;
$this->qjmlmhs=$qjmlmhs;
return $this->hitungrow($this->qjmlmhs);
}
function insertmhs($qmhs,$qjmlmhs){
return $this->sql(“insert into mahasiswa values(‘$qmhs’,’$qjmlmhs’)”);
}
function seleksidmn($edit){
return $this->sql(“select * from mahasiswa where npm=’$edit'”);
}
function editmhs($qmhs,$qjmlmhs,$edit){
return $this->sql(“update mahasiswa set npm=’$qmhs’,nama=’$qjmlmhs’ where npm=’$edit'”);
}
}
?>

—————————-

Code:
<? include “prj.php” ?>
<?
$obj=new prj;
$obj->konekdb();
$q=$obj->seleksimhs();
$obj->execute($q);
echo $obj->jmlmhs($q).” baris<br>”;
?>
<table border=1>
<tr>
<td>No. </td>
<td>Nama </td>
<td>Alamat</td>
<td>Edit</td>
</tr>
<?
$no=0;
while ($obj->getarray($q)){ $no++;
$npm=$obj->cols($q,1);
?>
<tr>
<td><?=$no?>.</td>
<td><?=$npm?></td>
<td><?=$obj->cols($q,2)?></td>
<td><a href=”Edit.php?npm=<?=$npm?>”>Edit</a></td>
</tr>
<? } $obj->free($q); ?>

——————————–
====
Udah ya, yang edit sama delete silakan coba sendiri πŸ™‚

Advertisements

57 Responses

Subscribe to comments with RSS.

  1. zani said, on December 3, 2007 at 7:30 am

    hallo pak abdul, nah saya mau tanya nih kalo muncul pesan error seperti ini gimana ???

    Warning: _oci_open_server: (Γ² in c:\apache\htdocs\portal_2\opendb.php on line 2
    Could not connect to ORACLE

    saya pake php 4.3 oracle 9i

  2. zani said, on December 3, 2007 at 7:32 am

    Maap satu lagi pak abdul, saya bikin 2 web server dalam 1 mesin server. IIS + APACHE, nah kan udahsaya bedain tuh portnya tapi kalo saya run keduanya yang IIS jalan yang Apache ga jalan untuk koneksi oraclenya. tapi kalo yang iis untuk ngejalanin oracle developer jalan.

    pesan errornya :

    Warning: _oci_open_server: (Γ² in c:\apache\htdocs\portal_2\opendb.php on line 2
    Could not connect to ORACLE

    Terimakasih

  3. samsonasik said, on December 3, 2007 at 8:34 am

    — berarti driver dll-nya ada yang belum di-uncomment, kalau di php 5 menggunakan xampp 1.6.2 bisa, ga tahu kalau di php 4, kemarin sempat coba di php 4, tapi gagal :), coba deh pakai xampp yang baru, download aja πŸ™‚
    — terus jangan lupa periksa apakah TNSListener-nya udah nyala apa belum, …

    —kalau mau jalanin apache, ya IIS-nya matiin dulu , πŸ™‚ , dan sebaliknya

  4. silda said, on December 17, 2007 at 1:00 pm

    maaf pak abdul
    dikantor saya menggunakan oracle7 sebagai database, xampp v1.6 sebagai webserver, saya uda cb uncomment ext di php.ini, persis seperti tutorial ini>/a>, tapi malah muncul “fatal error : call to undefine function ocilogon() in E:\xampp\htdocs\koneksi.php on line 5”

    itu knapa ya pak??

  5. silda said, on December 17, 2007 at 1:00 pm

    maaf pak abdul
    dikantor saya menggunakan oracle7 sebagai database, xampp v1.6 sebagai webserver, saya uda cb uncomment ext di php.ini, persis seperti tutorial ini>, tapi malah muncul “fatal error : call to undefine function ocilogon() in E:\xampp\htdocs\koneksi.php on line 5”

    itu knapa ya pak??

  6. samsonasik said, on December 17, 2007 at 2:21 pm

    kadang2, php emang ga bisa langsung konek bila dll nyadi uncomment, coba restart tnslistener oraclenya ,apachenya juga restart, kalau perlu, restart komputer, saya mencoba ini dengan oracle 10G, saya belum pernah coba di oracle 7, coba aja ganti ke oracle 10 G.. :d

  7. ASTERIA said, on January 17, 2008 at 9:35 am

    BAGAIMANA CARA MENGGUNAKAN CONNECTION (LANGKAH – LANGKAH) YANG BUKAN DARI ODBC, SQL, ARACLE.???? CONTOHNYA 2 AJA PAK….

  8. samsonasik said, on January 18, 2008 at 12:28 am

    maksudnya ?

  9. kupret said, on February 5, 2008 at 4:34 pm

    wduhhh, kurang jelassss..saya make orc9i+xamp1.6.5 pak, bisa di perjelas lagi plisssss

  10. samsonasik said, on February 6, 2008 at 9:49 am

    kalau pengen lebih jelas bisa online di YM , id saya samson_asik πŸ™‚

  11. mascha said, on February 11, 2008 at 12:15 pm

    pak saya barusan add yahoo, mohon di approve biar bisa nanya lebih detil πŸ˜€

  12. catur said, on March 17, 2008 at 12:15 am

    pak abdul saya mau tanya, kalau iis, php dan oracle . cara konfigurasi masing masing gimana sih?

  13. samsonasik said, on March 18, 2008 at 4:38 am

    ehm.., kalau IIS, saya belum pernah coba πŸ™‚

  14. sugi said, on June 10, 2008 at 2:09 pm

    cara diatas berhasil connect php ke oracle
    thx a lot

  15. widya said, on July 3, 2008 at 2:55 am

    kalo ada yang punya artikel / materi php n oracle
    tolong kirim ke email ya:agree_wda@yahoo.com

  16. indra said, on October 8, 2008 at 4:14 am

    udah ikut cara diatas tapi muncul Fatal error: Call to undefined function ocilogon(), ada saran ato penjelasan mengenai error diatas??

    thx.

  17. samsonasik said, on October 8, 2008 at 4:16 am

    udah edit belum php.ini nya ?

  18. rara said, on October 30, 2008 at 3:41 am

    aku pake link edit:
    <a href=”?pilih=app/interconnect/log/prev_edit_msl?id=”>Edit
    bukan muncul prev_edit_msl.php malah index.php
    ksalahannya dmn ya?

  19. samsonasik said, on October 30, 2008 at 4:10 am

    kalau yang saya lihat, itu “seolah” menggunakan include ya ?
    jadi misalkan kita ada di page index.php, kita include prev_edit_msl ?
    nah, kalau gitu, kalau menurut saya, tidak aman, karena memungkinkan orang include halaman lain, misal
    ?pilih=www.hacking.com/hack.php?id=hack
    nah, mending kalau menurut saya, pakai get parameter aja, misal :
    edit
    nah, kasih if :
    <?
    if (isset($_REQUEST[‘edit’])):
    include “prev_edit_msl.php”;
    endif;
    ?>

    semoga membantu πŸ™‚

  20. Aan said, on December 11, 2008 at 7:56 am

    Izin ya pa abdul contoh source-nya dijadikan modul untuk belajar, karena contoh nya cukup membumi…yhx

  21. samsonasik said, on December 11, 2008 at 3:49 pm

    boleh aja, asal menuliskan sumbernya πŸ™‚

  22. rudi said, on February 2, 2009 at 6:56 am

    kepada silda,
    silda pakainya oracle 7 for windows apa di Unix?
    kalau for windows tentu lebih mudah.
    Setahu saya oracle7 for windows lebih ringan dan jalannya sangat cepat sekali seperti yang dipakai di instansi-instansi pemerintah.

  23. stanley lindowris said, on March 19, 2009 at 9:09 pm

    bagus mas, semoga amal baeknya diterima tuhan,………..terimkasih atas tutorialnya.sy sangat terbantu sekali denngan tutorial ini.
    kalau boleh datanya di update terus,….sy pengen buat web dengan database oracle yang nanti ada fungsi login, searching, download file, insert, delete,tambah data dll seperti kebanyakan web dinamis,……
    nah itu gimana mas,…. tolong mas sy dibantu
    sy anak kudus baru belajar tahap oracle, di kampus saya belum ada yang bisa………………….universitas muria kudus jateng indonesia

  24. samsonasik said, on March 20, 2009 at 2:43 am

    wedew, banyak amat ya permintaanya, he..he..
    ehm.., gini deh, mendingan mas stanley belajar konsep programming dan algoritmanya dulu, kalau itu udah paham, soal coding mah, ga susah kok, kalau ga ada di dokumentation / API, bisa cari di Google, yang penting konsepnya dulu dimatengin.

  25. hen said, on April 27, 2009 at 7:16 am

    php.ini sudah di edit. tapi ko masih muncuk Fatal error: Call to undefined function OCILogon() ya..
    kenapa ya pa…?

  26. samsonasik said, on April 27, 2009 at 2:30 pm

    itu berarti function ocilogon() tidak dikenali , kemungkinan besar drivernya (file dll tidak ditemukan) , atau ada, tapi ga support sama PHP nya, jadi ga dikenali function tersebut.

    coba cek di phpinfo() , kalau untuk oracle ga ada, coba install web container yang baru (xampp, wampp, mampp) atau yg lainnya.

  27. hen said, on April 30, 2009 at 1:54 am

    saya sudah menggunakan xampp. tapi tetap saja tidak mau. apakan tergantung dari versinya juga? lalu caranya agar support terhadap php bgm?

  28. hen said, on April 30, 2009 at 2:41 am

    ada lagi nih kendalanya..
    aku sudah ubah settingan php.ini nya. tapi ketika aku restart xampp nya ada pesan error : “the procedure entry point OCILobRead2 could not bo located in the dynamic link library OCI.dll.”
    mohon penjelasannya pa….

  29. samsonasik said, on April 30, 2009 at 4:46 am

    pakai oracle berapa? soalnya OciLobRead2 ga support sama oracle 9.2, coba upgrade ke oracle 10G.

    kalau tetep gagal, coba cari cara lain, misal pakai adodb, dan lain2, selalu ada jalan jika kita mau memecahkan persoalan.ok, keep fighting!!!

  30. hen said, on May 4, 2009 at 3:11 am

    saya pakai oracle 10G, di localnya juga ada oracle client. tapi masih tetep tidak di kenali. bukannya kalo pakai ADODB malah terkasan muter-muter?
    uda gt aku juga coba pake zend. dikenali sih memang. hanya saat aku panggil DB nya, datanya nya ga muncul.

    bisa minta tutor yang lebih spesifiq ga? mulai dari setting, sampai manggil DB dan munculin data. -yang sederhana aja-

    kalo berkenan ke e-mail hendrik@intraco.co.id saja
    sebelumnya terima kasih banyak
    trims

    • samsonasik said, on May 4, 2009 at 6:24 am

      bukannya kalo pakai ADODB malah terkasan muter-muter?

      Itu tergantung gmn kita memanage codingnya.

      hanya saat aku panggil DB nya, datanya nya ga muncul

      kalau itu sih masalah di codingnya, bukan di PHP-nya

      bisa minta tutor yang lebih spesifiq ga? mulai dari setting, sampai manggil DB dan munculin data. -yang sederhana aja-

      maaf, karena kesibukan yg bejibun(cie..cie..) saya belum punya waktu , nanti kalau ada waktu luang diusahakan, tapi intinya mah keep fight, try and error, soalnya ini kan masalah ada di konfigurasi dan engine web container yg dipakai masing2, mungkin satu orang punya pemecahan yang lain dengan orang yang lainnya.

      semoga membantu πŸ™‚

  31. rendy said, on May 4, 2009 at 4:30 am

    bisa minta tolong untuk yang adodb ga? saya kurang mengerti dengan tutorial yang ada di phplens.com itu… ga jelas πŸ˜€ thanks b4 yah πŸ˜€ id ym saya : r3ndy_ipb

  32. rendy said, on May 4, 2009 at 4:49 am

    oh ya nanya lagi… seandainya neh server database gua ada di ip 192.168.1.10 di port default 1521 nah ntar cara koneksiinnya gimana? sepertinya contoh diatas tidak ada yah? trims.. mohon bantuannya…

  33. samsonasik said, on May 4, 2009 at 5:57 am

    bisa aja, tinggal buka firewall untuk port 1521 -nya.

  34. YS said, on June 19, 2009 at 2:06 am
  35. YS said, on June 19, 2009 at 2:13 am

    Warning: oci_connect() [function.oci-connect]: ORA-12154: TNS:could not resolve the connect identifier specified in D:\server\www\bisniscom\a2\connectoracle.php on line 3
    ORA-12154: TNS:could not resolve the connect identifier specified

    bisa tolong dijelaskan kenapa saya ga bisa connect nya, padahal TNSnya sudah saya restart

  36. YS said, on June 19, 2009 at 2:17 am

    saya coba connect menggunakan script ini

  37. YS said, on June 19, 2009 at 2:18 am

    saya coba connect menggunakan script ini
    // try connecting to the database
    $conn = oci_connect(‘orcl’, ‘password’, ‘LOCALNAME’);
    // check for any errors
    if (!$conn)
    {
    $e = oci_error();
    print htmlentities($e[‘message’]);
    exit;
    }
    // else there weren’t any errors
    else
    {
    echo ‘I am an Oracle mack daddy.’;
    }

  38. YS said, on June 19, 2009 at 2:19 am

    tapi muncul
    Warning: oci_connect() [function.oci-connect]: ORA-12154: TNS:could not resolve the connect identifier specified in D:\server\www\bisniscom\a2\connectoracle.php on line 3
    ORA-12154: TNS:could not resolve the connect identifier specified

    bisa tolong dijelaskan kenapa saya ga bisa connect nya, padahal TNSnya sudah saya restart tuh

  39. samsonasik said, on June 19, 2009 at 7:09 am

    itu berarti ada yg salah pada file : tnsnames.ora
    coba cek lg πŸ™‚

  40. bagus said, on January 20, 2010 at 12:46 pm

    rekan2 saya minta tolong, saya bikin web aplikasi dengan php, tapi kenapa pas saya taro diserver pas ceklogin koq malah bukan ngecek ke file ceklogin.php tapi file ceklogin.phpnya malah didownload, kenapa ya??? tolong bantuannya

    • samsonasik said, on January 21, 2010 at 12:23 am

      coba di browser yg lain di komputer lain, kalau tetep, berarti masalahnya ada di sisi server, si web server tidak mengenal *.php sebagai extension yg harus ia proses.

  41. Arif said, on June 4, 2010 at 10:31 am

    Bagus tutorialnya

  42. sapril said, on January 5, 2011 at 1:32 am

    maaf pak tutorialnya kurang jelas ya,,,,,

    bisa di jelasin secara detil atau kalau ada scriptnya minta boleh ?

    send to *saprildwi@ymail.com*

  43. jaren said, on January 20, 2011 at 12:04 pm

    kalu muncul pesan seperti ini pak
    Warning: oci_connect() [function.oci-connect]: OCIEnvNlsCreate() failed. There is something wrong with your system – please check that PATH includes the directory with Oracle Instant Client libraries in C:\xampp\htdocs\oracle\index.php on line 5

    kesalahanya dimna ea?

  44. samsonasik said, on January 21, 2011 at 1:07 pm

    coba periksa kembali library oracle untuk php nya :), mungkin corrupt πŸ™‚

  45. arton said, on July 4, 2011 at 3:05 pm

    salam kenal,,
    saya mau tanya,,
    di browser muncul pesan

    -Warning: ociparse() expects parameter 1 to be resource, null given in C:\xampp\htdocs\Diva7_file1.php on line 25

    -Warning: ociexecute() expects parameter 1 to be resource, null given in C:\xampp\htdocs\Diva7_file1.php on line 26

    -Warning: ocifetchinto() expects parameter 1 to be resource, null given in C:\xampp\htdocs\Diva7_file1.php on line 27

    kira2 salahnya dmna y,,
    makasih,

  46. samsonasik said, on July 4, 2011 at 6:05 pm

    coba var_dump($this->konekdb()) hasilnya gmn ?

  47. arton said, on July 5, 2011 at 3:38 pm

    makasih mas, sudah bisa,,

    saya mau tanya lagi nih,, saya buat link halaman,,
    nah stlah itu ada pesan error kyk gni d browser,,

    Call to undefined function ocifetchrow() in C:\xampp\htdocs\Diva\Php_Arton\areaT.php on line 43

    kira2 knp y??

  48. samsonasik said, on July 5, 2011 at 5:47 pm

    coba ocifetch , bukan ocifetchrow

  49. randyankpendek said, on May 17, 2012 at 2:09 am

    pak tolong ini errornya Warning: ociexecute() [function.ociexecute]: ORA-01722: invalid number in C:\xampp\htdocs\xfunwater\barang.php on line 41. salah dmnnya ya??

    • randyankpendek said, on May 17, 2012 at 2:11 am

      walah kepanjangan source codenya ._.

    • samsonasik said, on May 20, 2012 at 9:06 pm

      coba di echo dulu sql nya :), kemungkinan ada data type yg tidak sama antara values input dan data type di dalam table

  50. randyankpendek said, on May 17, 2012 at 2:10 am
  51. Moh Ikrar Udin said, on December 12, 2012 at 8:50 pm

    Lha kalo misal bikin aplikasi PHP dgn database mysql yang diletakkan di sebuah server, kemudian aplikasi tsb harus mengambil/merefer data dari aplikasi lain di server lainnya (database oracle 9i) bagaimana?, misal ip database di server lainnya 192.10.10.41, tks

  52. didik's said, on March 30, 2013 at 12:42 pm

    mantab turotialnya.. bravo samsonasik.. πŸ™‚


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: