Mengenal PHP Data Objects (PDO)

tutorial belajar PHP untuk pemula

Jika kamu mengikuti semua tutorial belajar PHP MySQL di infanthree, sampai sekarang ini kita sudah mempelajari cara memakai mysql extension dan mysqli extension. Selain kedua metode ini, terdapat 1 lagi cara untuk menghubungkan antara PHP dengan MySQL, yaitu memakai PDO extension. Dalam tutorial saat ini (dan beberapa tutorial selanjutnya) kita akan mengulas lebih dalam tentang PDO.

Pengertian PDO (PHP Data Objects)

PDO (PHP Data Objects) ialah interface universal yang disiapkan PHP untuk “berinteraksi” dengan database server. Maksud istilah “interface universal” disini ialah bahwa PDO tidak terikat dengan aplikasi database tertentu. Jika sekarang ini kita memakai database MySQL dan dikemudian hari mau bermigrasi memakai PostgreSQL, kita cuma tinggal mengganti cara pemanggilan awal PDO dan semua kode program yang ada dapat segera dipakai untuk database baru.

Keadaan ini berbeda bila memakai mysql extension atau mysqli extension. Kedua extension ini cuma dapat bekerja dengan database MySQL. Sebab alasan inilah banyak disarankan kita mulai beralih memakai PDO dibandingkan mysqli.

Secara teknis, jika memakai mysql atau mysqli extension, PHP langsung berkaitan dengan MySQL Server, namun bila memakai PDO, dia tidak berkaitan langsung dengan database, namun cuma sebagai “interface”. Konsep PDO ini bisa digambarkan sebagai berikut:

PHP PDO –> Database Driver –> Database Server

PDO bekerja dengan cara yang disebut “data-access abstraction layer”. Artinya, apapun jenis database server yang dipakai, kode PHP yang ditulis akan tetap sama. PDO menyediakan “abstraction layer” untuk berinteraksi dengan database server.

Untuk memakai PDO, kita perlu mengaksesnya memakai object. PDO tidak menyediakan cara penulisan procedural style seperti mysqli atau mysql extension. Sebab itu, bila kamu kurang paham tentang istilah pemrograman object seperti class, method, dan property, silahkan mempelajarinya pada Tutorial Pemrograman Object PHP bagi pemula yang sudah tersedia di infanthree.

PHP mulai menyediakan PDO extension semenjak versi 5.1 keatas.

Jenis Database Server yang didukung PDO

Sampai 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

Daftar ini bisa kamu lihat dari http://php.net/manual/en/pdo.drivers.php.

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

Cara Mengaktifkan PDO Extension

Meskipun PDO Extension sudah aktif secara “default” pada PHP versi 5.1 keatas, namun tidak seluruh database driver bisa dipakai. Dengan kata lain, untuk alasan kinerja, PHP me-nonaktifkan beberapa driver database seperti Oracle atau PostgreSQL di dalam PDO.

Untuk melihat driver database apa saja yang sudah aktif dan dapat segera dipakai, bisa memakai fungsi (lebih tepatnya: static method) PDO::getAvailableDrivers():

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

Saat saya menjalankan perintah itu pada PHP 5.6 bawaan XAMPP, berikut ialah hasil yang didapat:

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

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

File php.ini ialah file konfigurasi yang dipakai PHP. Saya sudah mendiskusikan sepintas mengenai cara mendapatkan dan mengakses file php.ini dalam tutorial Cara Merubah File Konfigurasi PHP (php.ini). Sebab saya memakai PHP yang diinstall dari XAMPP di drive D, lokasinya ialah: D:xamppphpphp.ini.

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

Pada baris inilah kita mengaktifkan driver database PDO. Perhatikan library yang dimulai dengan “php_pdo“, inilah driver-driver database PDO yang disediakan di dalam PHP. Bisa dilihat driver yang sudah aktif cuma php_pdo_mysql.dll dan php_pdo_sqlite.dll.

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

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

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

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

Seperti yang tampak, driver PostgreSQL untuk PDO sudah aktif dan dapat langung dipakai.

Di saat penulisan contoh diatas, saya juga mencoba mengaktifkan extension=php_pdo_oci.dll yang dipakai database Oracle, namun mendapai error:

“The program can’t start because OCI.dll is missing from your computer”

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

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

Hal ini dapat jadi pertimbangan bila kamu mau memakai PDO untuk mengakses database Oracle. Sebagai alternatif, silahkan pakai fungsi oracle “biasa”: oci8.

Dalam tutorial PHP MySQL saat ini kita sudah membicarakan mengenai pengertian PDO dan cara mengaktifkan driver database supaya bisa diakses memakai PDO. Pada tutorial berikutnya, kita akan mulai masuk kedalam kode program yang dipakai untuk menghubungkan PHP dengan database MySQL memakai PDO dalam tutorial Cara Membuat Koneksi PHP MySQL Memakai PDO.


Butuh Web Developer Makassar atau Jasa SEO di Makassar yang bergaransi? Jangan ragu dengan infanthree.com. Kami juga penyedia Jasa Pembuatan Aplikasi Android di Makassar yang terkemuka. Selain itu ada layanan SEM, SMM, Internet Marketing Agency Makassar dan Social Media, Pembuatan Logo, Konten, Video, Maskot dan Instalasi jaringan ataupun mikrotik, hingga pelatihan komputer dan internet marketing.

Recommended Posts

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *