Friday, September 4, 2009

Capaian kepada Database Oracle melalui PHP

Senario
  1. Saya perlu mengambil data yang terdapat di dalam Oracle Database View/Table untuk dimasukkan ke dalam MYSQL Database aplikasi baru saya.
  2. Saya perlu menggunakan akaun pengguna sedia ada (kata nama dan kata laluan) yang di simpan di dalam Oracle Database untuk log in ke dalam aplikasi PHP saya.
Tindakan yang perlu dilakukan
  1. Mencari jalan untuk menghubungkan aplikasi PHP dan Oracle Database View.
  2. Mengenalpasti langkah-langkah yang perlu diambil.
  3. Membuat testing terhadap penyelesaian tersebut.
  4. Menggunakan penyelesaian tersebut untuk menyiapkan tugasan.
Penyelesaian
  1. Membuat instalasi Oracle Instant Client di dalam PC/Server yang digunakan. Maksudnya PC/Server yang mempunyai PHP dan MYSQL yang digunakan untuk membangunkan aplikasi PHP. Rujuk di sini. Sila download Instant Client Package - Basic dan *Instant Client Package - SQL*Plus. Instalasi hanya dengan extract fail tersebut ke directory yang dirasakan sesuai. Paling mudah extract ke dalam c:/. Extract nstant Client Package - Basic dahulu dan kemudian barulah extract *Instant Client Package - SQL*Plus.
  2. Kemudian set PATH di dalam system Environment (Start->Control Panel->System->Advanced Tab->klik Environment Variables). Pada bahagian system variable, klik pada bahagian PATH dan Edit, masukkan lokasi Instant Client tadi dengan nama folder sekali. Contohnya C:\instantclient_10_2;
  3. Seterusnya, dalam system enviroment juga, masukkan value TNS_ADMIN dengan value yang sama dengan PATH tadi. Ini adalah kerana kita akan memasukkan TNSNAMES.ora dilokasi ini juga. *Apakah TNSNAMES.ora? Ianya merupakan config file yang menyatakan lokasi database (oracle database) yang akan kita capai nanti.
  4. Seterusnya, kita perlulah membuat fail TNSNAMES.ora. Caranya, buka notepad dan save sebagai tnsnames.ora. Kemudian, masukkan maklumat berikut dan save semula fail tersebut;
     addressname =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(Host =
    hostname )(Port = port ))
    )
    (CONNECT_DATA =
    (SERVICE_NAME =
    addressname )
    )
    )
  5. Kemudian, enable OCI8 dengan membuang semicolon pada line berikut yang terdapat di dalam fail php.ini (..php/bin).
    ;extension = php_oci8.dll menjadi extension = php_oci8.dll
  6. Restart Apache service dan buka phpinfo(). Pastikan OCI8 dipaparkan di dalam phpinfo() tersebut. Jika tidak, ini bermakna OCI8 masih disable lagi. Sekiranya ini berlaku, sila restart PC/Server tersebut pula.
  7. Sila testing capaian ke database menggunakan SQl*Plus. Pastikan langkah ini berjaya sebelum ke langkah seterusnya. Untuk itu, pastikan anda mempunyai capaian ke database tersebut terlebih dahulu.
  8. Seterusnya, gunakan skrip berikut untuk menguji capaian daripada aplikasi php ke oracle database view/table;

  9. Sekiranya langkah 8 berjaya, TAHNIAH! anda telah berjaya membuat capaian ke oracle database.
  10. Untuk contoh selanjutnya, bolehlah merujuk di dalam search engine. Antara laman web yang agak lengkap adalah;
Diharap serba sedikit penerangan saya dapat membantu.

Sekian, terima kasih.

Sharing is Caring
~d.e.w.i.c.i.n.t.a.d.u.n.i.a~

No comments: