Tutorial PHP MySQL Part 19: Pengertian PDO dan Cara Mengaktifkan PDO (PHP Data Objects)

Apabila anda mengikuti seluruh tutorial belajar PHP MySQL di duniailkom, hingga saat ini kita telah mempelajari cara menggunakan mysql extension dan mysqli extension. Selain kedua metode ini, terdapat 1 lagi cara untuk menghubungkan antara PHP dengan MySQL, yakni menggunakan PDO extension. Dalam tutorial kali ini (dan beberapa tutorial berikutnya) kita akan membahas lebih dalam tentang PDO.


Pengertian PDO (PHP Data Objects)

PDO (PHP Data Objects) adalah interface universal yang disediakan PHP untuk "berkomunikasi" dengan database server. Maksud istilah "interface universal" disini adalah bahwa PDO tidak terikat dengan aplikasi database tertentu. Apabila saat ini kita menggunakan database MySQL dan dikemudian hari ingin bermigrasi menggunakan PostgreSQL, kita hanya tinggal mengganti cara pemanggilan awal PDO dan seluruh kode program yang ada bisa langsung digunakan untuk database baru.

Kondisi ini berbeda jika menggunakan mysql extension atau mysqli extension. Kedua extension ini hanya bisa bekerja dengan database MySQL. Karena alasan inilah banyak sebaiknya kita mulai beralih menggunakan PDO dibandingkan mysqli.

Secara teknis, apabila menggunakan mysql atau mysqli extension, PHP langsung berhubungan dengan MySQL Server, tetapi jika menggunakan PDO, ia tidak berhubungan langsung dengan database, tetapi hanya sebagai "interface". Konsep PDO ini dapat digambarkan sebagai berikut:

PHP PDO –> Database Driver –> Database Server

PDO bekerja dengan metode yang disebut "data-access abstraction layer". Artinya, apapun jenis database server yang digunakan, kode PHP yang ditulis akan tetap sama. PDO menyediakan "abstraction layer" untuk berkomunikasi dengan database server.

Untuk menggunakan PDO, kita harus mengaksesnya menggunakan object. PDO tidak menyediakan cara penulisan procedural style seperti mysqli atau mysql extension. Karena itu, jika anda kurang paham tentang istilah pemrograman object seperti class, method, dan property, silahkan mempelajarinya pada Tutorial Pemrograman Object PHP untuk pemula yang telah tersedia di duniailkom.

PHP mulai menyediakan PDO extension sejak versi 5.1 keatas.

Jenis Database Server yang didukung PDO

Hingga saat penulisan tutorial ini (PHP versi 5.6) PDO mendukung setidaknya 12 jenis Interface/Database Server:

  •    CUBRID
  •    MS SQL Server
  •    Firebird
  •    IBM
  •    Informix
  •    MySQL
  •    MS SQL Server
  •    Oracle
  •    ODBC and DB2
  •    PostgreSQL
  •    SQLite
  •    4D

List ini dapat anda lihat dari http://php.net/manual/en/pdo.drivers.php.

Dapat dilihat bahwa PDO mendukung banyak aplikasi database populer seperti: Oracle, Microsoft SQL Server, dan PostgreSQL. Dengan membuat kode PHP menggunakan PDO, secara tidak langsung kita juga membuka kemungkinan untuk menggunakan database server selain MySQL, sehingga menjadi lebih fleksibel.


Cara Mengaktifkan PDO Extension

Walaupun PDO Extension telah aktif secara "default" pada PHP versi 5.1 keatas, tetapi tidak semua database driver bisa digunakan. Dengan kata lain, untuk alasan performa, PHP me-nonaktifkan beberapa driver database seperti Oracle atau PostgreSQL di dalam PDO.

Untuk melihat driver database apa saja yang telah aktif dan bisa langsung digunakan, bisa menggunakan fungsi (lebih tepatnya: static method) PDO::getAvailableDrivers():

<?php
   print_r(PDO::getAvailableDrivers());
?>

Ketika saya menjalankan perintah tersebut pada PHP 5.6 bawaan XAMPP, berikut adalah hasil yang didapat:

Array ( [0] => mysql [1] => sqlite )

Dari tampilan diatas, dapat dilihat bahwa driver PDO bawaan PHP yang aktif (dan yang bisa digunakan) hanyalah MySQL dan SQLite. Jadi bagaimana cara mengaktifkan driver untuk database lainnya? Caranya adalah mengubah setingan php.ini.

File php.ini adalah file konfigurasi yang digunakan PHP. Saya telah membahas sekilas tentang cara menemukan dan mengakses file php.ini dalam tutorial Cara Mengubah File Konfigurasi PHP (php.ini). Karena saya menggunakan PHP yang diinstall dari XAMPP di drive D, lokasinya adalah: D:\xampp\php\php.ini.

Silahkan buka file php.ini dengan aplikasi text editor, kemudian search kata "pdo". Dalam versi PHP yang saya gunakan, hasil pencarian "pdo" akan tampil pada baris ke-1010, seperti gambar dibawah:

Tutorial PHP MySQL - Lokasi setting driver PDO pada file php.ini

Pada baris inilah kita mengaktifkan driver database PDO. Perhatikan library yang diawali dengan "php_pdo", inilah driver-driver database PDO yang tersedia di dalam PHP. Dapat dilihat driver yang telah aktif hanya php_pdo_mysql.dll dan php_pdo_sqlite.dll.

Untuk mengaktifkannya, silahkan hapus tanda titik koma (;) dari awal baris nama driver yang ingin digunakan. Sebagai contoh, saya akan mengaktifkan extension=php_pdo_pgsql.dll yang merupakan driver dari database PostgreSQL:

Tutorial PHP MySQL - Mengaktifkan driver PDO PostgreSQL

Selanjutnya, save file php.ini, kemudian restart web server Apache (matikan dan hidupkan kembali melalui XAMPP Control Panel).

Untuk memastikan apakah driver telah aktif atau belum, kita kembali menjalankan method PDO::getAvailableDrivers(), dan berikut adalah hasil yang didapat:

Array ( [0] => mysql [1] => pgsql [2] => sqlite )

Seperti yang terlihat, driver PostgreSQL untuk PDO telah aktif dan bisa langung digunakan.

Pada saat penulisan contoh diatas, saya juga mencoba mengaktifkan extension=php_pdo_oci.dll yang digunakan database Oracle, tetapi mendapai error:

"The program can't start because OCI.dll is missing from your computer"

Error diatas terjadi karena PHP tidak menyertakan library php_pdo_oci.dll, dan kita harus mendownloadnya secara manual.

Setelah saya mencari dari beberapa sumber, ternyata PDO untuk oracle masih berstatus "experiment", dan dikembangkan oleh komunitas, bukan Oracle sendiri.

Hal ini bisa menjadi pertimbangan jika anda ingin menggunakan PDO untuk mengakses database Oracle. Sebagai alternatif, silahkan gunakan fungsi oracle "biasa": oci8.


Dalam tutorial PHP MySQL kali ini kita telah membahas tentang pengertian PDO dan cara mengaktifkan driver database agar bisa diakses menggunakan PDO. Pada tutorial selanjutnya, kita akan mulai masuk kedalam kode program yang digunakan untuk menghubungkan PHP dengan database MySQL menggunakan PDO dalam tutorial Cara Membuat Koneksi PHP MySQL Menggunakan PDO.

24 Comments

  1. rizza
    29 Dec 14
    • Andre
      29 Dec 14
  2. rizza
    29 Dec 14
    • Andre
      29 Dec 14
  3. Dadan rusdan
    13 Jan 15
    • Andre
      14 Jan 15
  4. bagong
    01 Mar 15
    • Andre
      02 Mar 15
  5. Xabi Corazon
    15 Aug 15
    • Andre
      16 Aug 15
      • Xabi Corazon
        16 Aug 15
  6. heru murdiyanto
    28 Mar 16
    • Andre
      30 Mar 16
      • sukipri
        28 Feb 17
    • Andre
      06 Jun 16
  7. munying
    26 Dec 17
    • Andre
      28 Dec 17
  8. Haz
    26 Feb 19
    • Andre
      27 Feb 19
  9. julio
    02 Jun 20
    • Andre
      03 Jun 20
  10. Firmansyah
    15 Dec 20
    • Andre
      15 Dec 20

Add Comment

Leave a Reply to Andre Cancel reply