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

Posted on

Apabila kamu mengikuti seluruh panduan belajar PHP MySQL di Source Code Program, hingga dikala ini kita telah mempelajari cara menggunakan mysql extension dan mysqli extension. Selain kedua sistem ini, terdapat 1 lagi cara bagi menghubungkan antara PHP dengan MySQL, yakni menggunakan PDO extension. Pada panduan kali ini (dan beberapa panduan berikutnya) kita akan membahas lebih pada mengenai PDO.


Pengertian PDO (PHP Data Objects)

PDO (PHP Data Objects) yaitu interface universal yang disediakan PHP bagi “berkomunikasi” dengan database server. Maksud istilah “interface universal” disini yaitu bahwa PDO tak terikat dengan program database tertentu. Apabila dikala 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 terdapat dapat seketika digunakan bagi database baru.

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

Secara teknis, apabila menggunakan mysql atau mysqli extension, PHP seketika berhubungan dengan MySQL Server, tetapi seandainya menggunakan PDO, ia tak berhubungan seketika dengan database, tetapi hanya selaku “interface”. Konsep PDO ini dapat digambarkan selaku berikut:

PHP PDO –> Database Driver –> Database Server

PDO bekerja dengan sistem yang disebut “data-access abstraction layer”. Artinya, apapun jenis database server yang digunakan, kode PHP yang ditulis akan tetap sama. PDO menyediakan “abstraction layer” bagi berkomunikasi dengan database server.

Bagi menggunakan PDO, kita mesti mengaksesnya menggunakan object. PDO tak menyediakan cara penulisan procedural style seperti mysqli atau mysql extension. Karena itu, seandainya kamu kurang paham mengenai istilah pemrograman object seperti class, method, dan property, silahkan mempelajarinya di Tutorial Pemrograman Object PHP untuk pemula yang telah terdapat di Source Code Program.

PHP mulai menyediakan PDO extension sejak versi 5.1 keatas.


Jenis Database Server yang didukung PDO

Hingga dikala penulisan panduan 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 kamu lihat dari http://php.net/manual/en/pdo.drivers.php.

Dapat dilihat bahwa PDO mendukung banyak program database populer seperti: Oracle, Microsoft SQL Server, dan PostgreSQL. Dengan merancang kode PHP menggunakan PDO, secara tak seketika kita pun membuka kemungkinan bagi menggunakan database server selain MySQL, sehingga menjadi lebih fleksibel.


Cara Mengaktifkan PDO Extension

Walaupun PDO Extension telah aktif secara “default” di PHP versi 5.1 keatas, tetapi tak segala database driver dapat digunakan. Dengan kata lain, bagi alasan performa, PHP me-nonaktifkan beberapa driver database seperti Oracle atau PostgreSQL di pada PDO.

Bagi melihat driver database apa saja yang telah aktif dan dapat seketika digunakan, dapat menggunakan manfaat (lebih tepatnya: static method) PDO::getAvailableDrivers():

Ketika saya menjalankan command tersebut di PHP 5.6 bawaan XAMPP, berikut yaitu hasil yang didapat:

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

File php.ini yaitu file konfigurasi yang digunakan PHP. Saya telah membahas sekilas mengenai cara menemukan dan mengakses file php.ini pada panduan Cara Mengubah File Konfigurasi PHP (php.ini). Karena saya menggunakan PHP yang diinstall dari XAMPP di drive D, lokasinya yaitu: D:xamppphpphp.ini.

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

Di baris inilah kita mengaktifkan driver database PDO. Perhatikan library yang diawali dengan “php_pdo“, inilah driver-driver database PDO yang terdapat di pada PHP. Dapat dilihat driver yang telah aktif hanya php_pdo_mysql.dll dan php_pdo_sqlite.dll.

Bagi mengaktifkannya, silahkan hapus tanda titik koma (;) dari awal baris nama driver yang ingin digunakan. Selaku contoh, saya akan mengaktifkan extension=php_pdo_pgsql.dll yang adalah sebuah driver dari databas
e PostgreSQL:

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

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

Seperti yang terlihat, driver PostgreSQL bagi PDO telah aktif dan dapat langung digunakan.

Di dikala penulisan contoh diatas, saya pun 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 tak menyertakan library php_pdo_oci.dll, dan kita mesti mendownloadnya secara manual.

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

Hal ini dapat menjadi pertimbangan seandainya kamu ingin menggunakan PDO bagi mengakses database Oracle. Selaku alternatif, silahkan gunakan manfaat oracle “lazim”: oci8.


Pada panduan PHP MySQL kali ini kita telah membahas mengenai pengertian PDO dan cara mengaktifkan driver database agar dapat diakses menggunakan PDO. Di panduan berikutnya, kita akan mulai masuk kedalam kode program yang digunakan bagi menghubungkan PHP dengan database MySQL menggunakan PDO pada panduan Cara Membuat Koneksi PHP MySQL Menggunakan PDO.


Sumber https://www.duniailkom.com/