Menggunakan PHP Data Object ( PDO )

PDO adalah lapisan abstraksi database yang ditulis dengan bahasa pemrograman PHP berorientasi object yang menyediakan fungsi/method seragam untuk akses berbagai macam database.

Menggunakan PDO  PHP Data Object

Menggunakan PDO PHP Data Object


Modul Program / Pustaka PDO telah disertakan atau menjadi modul default yang terinstall pada web server apache, jika anda menyertakan modul koneksi PHP ke database seperti modul php-mysql atau modul php database lainnya maka PDO untuk database akan disertakan, untuk paket XAMPP ( Apache Server, MySQL dan PHP) juga telah tersedia dan siap dipakai.

PDO menyediakan lapisan akses database, untuk bermacam-macam database, Anda akan menggunakan fungsi-fungsi yang sama dalam melakukan eksekusi perintah SQL ( query ) atau mengambil data ( fetch data ) .

PDO telah men-support beberapa Driver untuk beberapa Database, seperti
1. PDO_DBLIB, support database FreeTDS / Microsoft SQL Server / Sybase
2. PDO_FIREBIRD , Firebird/Interbase 6
3. PDO_IBM , IBM DB2
4. PDO_INFORMIX , IBM Informix Dynamic Server
5. PDO_MYSQL , MySQL 3.x/4.x/5.x
6. PDO_OCI , Oracle Call Interface
7. PDO_ODBC , ODBC v3 (IBM DB2, unixODBC and win32 ODBC)
8. PDO_PGSQL , PostgreSQL
9. PDO_SQLITE , SQLite 3 and SQLite 2

Untuk melihat database apa saja yang telah disupport dapat menjalankan kode program PHP berikut ini:

print_r(PDO::getAvailableDrivers());

Koneksi Database
Dalam membuat sebuah koneksi ke database server, ada sedikit perbedaan berdasarkan identifikasi vendor database, namun selebihnya adalah sama, yaitu anda harus mendefinisikan beberapa variabel seperti nama server atau nomor IP server ($host), user pemilik database ($user), password user ($pass) serta nama basis data yang akan diakses ($dbname).

Berikut kode program untuk membuat object koneksi database dengan PDO :

<?php
try{
   // Database MS SQLServer dengan PDO_DBLIB
   $dbh=new PDO("mssql:host=$host;dbname=$dbname,$user,$pass");

   // Database Sybase  dengan PDO_DBLIB
   $dbh=new PDO("sybase:host=$host;dbname=$dbname,$user,$pass");

   // Database Postgresql dengan PDO_POSTGREQL
   $dbh=newPDO("pgsql:host=$host;dbname=$dbname",$user,$pass);

   // Database MySQL dengan PDO_MYSQL
   $dbh=new PDO("mysql:host=$host;dbname=$dbname",$user,$pass);

   // Database SQLite
   $dbh =newPDO("sqlite:my/database/path/database.db");

   // Database Ms.Access
   $dbh= new PDO('odbc:Driver={Microsoft Access Driver(*.mdb)};
           Dbq=C:\database.mdb;Uid=Admin');
 }
catch(PDOException $e){
     echo $e->getMessage();
}
?>

Blok try / catch digunakan untuk menangkap pesan kesalahan yang terjadi jika gagal koneksi ke database server.

Exception pada PDO
PDO menggunakan exception untuk menangani pesan kesalahan yang terjadi, artinya anda harus menangkap pesan kesalahan ini dengan menggunakan blok try – catch, berikut contoh cara menangkap pesan kesalahan saat anda menggunakan fungsi-fungsi pada PDO.

<?php
try {
   $dbh=new PDO("mssql:host=$host;dbname=$dbname,$user,$pass");
   $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
   $st = $dbh->prepare("DELECT * FROM produk "); // harusnya SELECT
   $st->execute();
}catch(PDOException $e)
{
   echo 'Maaf Anda Salah .. Kode tidak bisa dieksekusi ';
   echo $e->getMessage();
}
?>

Post a Response