Halo teman-teman pada kesempatan kali ini saya akan menjelaskan Apa itu PDO?PDO (PHP Data Objects) adalah interface universal yang disediakan PHP. Apa itu “interface universal”? Adalah bahwa PDO tidak terikat dengan aplikasi database tertentu. Apabila kita merubah aplikasi database, kita hanya tinggal mengganti cara pemanggilan awal PDO dan seluruh kode program yang ada bisa langsung digunakan untuk database baru.

Berbeda jika kita menggunakan mysql extension atau mysqli extension. Kedua extension itu hanya bisa bekerja dengan database MySQL.

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”. Gambaran konsep PDO:

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.

Jenis Database Server yang didukung PDO

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

  • MS SQL Server
  • CUBRID
  • Firebird
  • IBM
  • PostgreSQL
  • DLL

PDO dapat mendukung banyak aplikasi database populer. Dengan membuat kode PHP menggunakan PDO, secara tidak langsung kita juga bisa menggunakan database server selain MySQL, sehingga menjadi lebih fleksibel.

Mengaktifkan PDO Extension

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, bisa menggunakan fungsi PDO::getAvailableDrivers():

Dan ketika saya menjalankan perintah tersebut pada hasilnya adalah:

Dari hasil diatas, dapat kita lihat bahwa driver PDO bawaan PHP yang aktif hanyalah MySQL dan SQLite. Lalu bagaimana cara mengaktifkan driver untuk database lainnya? Caranya adalah mengubah setingan di file php.ini.

  • 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
  • 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:
  • Selanjutnya, save file php.ini, kemudian restart web server Apache (matikan dan hidupkan kembali melalui XAMPP Control Panel).
  • Untuk memastikan apakah driver telah aktif, kita kembali menjalankan PDO::getAvailableDrivers()

Dari hasil diatas driver PostgreSQL untuk PDO telah aktif dan bisa langung digunakan. Semoga bermanfaat