Oleh: cabra14 | Oktober 8, 2008

Koneksi php dengan postgresql dan Koneksi php dengan oracle

Koneksi php dengan postgresql

Sebelum membahas koneksi php ke postgresql maka harus di instl terleih dahulu php dengan postgresqlnya. Disini dierikan contoh install XAMPP dengan postgresql.

Install XAMPP

Double klik file exenya maka akan muncul gamar erikut:

Klik install atau pilih tempat penyimpanannya terlebih dahulu ikuti petunjuknya sampai finish

Setelah lengkap menginstal kamu dapat melihat pada start/program/XAMPP. Kamu dapat menggunakan control panel XAMPP untuk melakukan start/stop semua server dan install/uninstall semua servvis

Install postgresql

Download postgresql yang binery.zip

Ekstrak file tadi dan install Microsoft Visual C++ 2005 redistributable vcredist_x86.exe terlebih dahulu.

Sekarang double klik, pilih bahasa yang digunakan, pilih default foder ke c: \xampp\pgsql, klik ok

Tulis password user acaount “postgres” klik next

Inisialisasi database:

  • Enable “Accept connections on all addresses, not just localhost” jika mau.
  • pilih different Encoding for both Server and Client (i.e: UTF8 for unicode support)
  • masukan password DB administrator account “postgres”.

Install phppgadmin

Ekstrak phppgadmin ke C:\xampp\phpPgAdmin\. Jangan uat lagi sub foldernya.

Buka “config.inc.php” pada C:\xampp\phpPgAdmin\conf\ dan set “extra_login_security” menjadi false

$conf['extra_login_security'] = false;

Sekarang buka c:\xampp\php\php.ini buat ekstensinya menjadi “extension=php_pgsql.dll”

Terakhir buka c:\xampp\apache\conf\extra\httpd-xampp.conf pada session

<IfModule mime_module> add

Alias /phppgadmin “c:/xampp/phpPgAdmin/”
<Directory “c:/xampp/phpPgAdmin”>
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>

Sekarang kita dapat mengakses phppgadmin

Contoh koneksi php dengan postgresql

Buat data base dan tabelnya seperti:

CREATE TABLE tbl_karyawan (
  nama character varying(100),
  alamat character varying(100),
  update_datetime timestamp without time zone
);

Isi tabel karyawan

INSERT INTO tbl_karyawan (nama, alamat, update_datetime) VALUES ('Roy Suryo', 'Yogyakarta', '2008-08-20 10:09:00');
INSERT INTO tbl_karyawan (nama, alamat, update_datetime) VALUES ('Onno W Purbo', 'Bandung', '2008-08-20 10:10:00');
INSERT INTO tbl_karyawan (nama, alamat, update_datetime) VALUES ('Budi Rahardjo', 'Bandung', '2008-08-20 10:11:00');
INSERT INTO tbl_karyawan (nama, alamat, update_datetime) VALUES ('Eko Indrajit', 'Jakarta', '2008-08-20 10:12:00');
INSERT INTO tbl_karyawan (nama, alamat, update_datetime) VALUES ('Jim Geovedi', 'Jakarta', '2008-08-20 10:13:00');
INSERT INTO tbl_karyawan (nama, alamat, update_datetime) VALUES ('Risman Adnan M', 'Jakarta', '2008-08-20 10:14:00');

Berikut ini contoh source code untuk melakukan koneksi ke database PostgreSQL kemudian melakukan query dan menampilkan hasilnya ke layar.

<?php
  // demo koneksi ke database postgresql
  // diambil dan dimodifikasi dari manual php.net

  // connecting, selecting database
  // anda harus sesuaikan dbnam, user dan password sesuai dengan setting pada database server anda
  $dbconn = pg_connect("host=localhost dbname=databasemu user=usermu password=passmu") or die('Could not connect: ' . pg_last_error());

  // lakukan SQL query
  $query = "SELECT * FROM tbl_karyawan";
  $result = pg_query($dbconn, $query) or die('Query failed: ' . pg_last_error());

  // output result
  while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
   echo "Nama: " . $line['nama'] . " - Alamat: " . $line['alamat'] . "<br/>";
  }

  // free result
  pg_free_result($result);

  // close connection
  pg_close($dbconn);
?>


Koneksi PHP dengan 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

About these ads

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Logout / Ubah )

Twitter picture

You are commenting using your Twitter account. Logout / Ubah )

Facebook photo

You are commenting using your Facebook account. Logout / Ubah )

Google+ photo

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Kategori

Ikuti

Get every new post delivered to your Inbox.

%d bloggers like this: