PDO merupakan interface universal yang disediakan PHP untuk berkomunikasi dengan berbagai jenis database seperti MySQL, PostgreSQL, SQLite, dan lainnya. PDO menyediakan abstraksi untuk menghubungkan dan menjalankan query terhadap database sehingga kode PHP dapat digunakan untuk berbagai database tanpa modifikasi yang berarti. PDO mendukung pendekatan pemrograman berorientasi objek dalam mengakses database.
2. PERKEMBANGAN KONEKSI PHP
• PHP merupakan bahasa pemograman yang selalu di update dan
berkembang mengikuti teknologi terbaru. Saat ini, Pemrograman
Berorientasi Objek (Object Oriented Programming) merupakan trend
pemrograman PHP, dan hal ini juga mempengaruhi cara mengakses
database dari PHP.
• PHP memiliki 3 cara pengaksesan MySQL, yakni melalui PDO (PHP Data
Objects), mysqli extension dan mysql
extension. PDO menggunakan pemrograman objek, mysqli extension
tersedia dalam bentuk objek dan prosedural (diakses melalui fungsi-
fungsi) sedangkan mysql extension sepenuhnya menggunakan
pemograman prosedural
3. KONEKSI MYSQL DENGAN MYSQL
EXTENSION
• Untuk mengakses MySQL dari PHP, kita menggunakan fungsi-
fungsi
seperti mysql_connect(), mysql_query(), dan mysql_fetch_array
().
• Fungsi-fungsi ini tergabung ke dalam mysql extension
4. KONEKSI MYSQL DENGAN MYSQLI
EXTENSION
• mysqli merupakan singkatan dari MySQL Improved.
• Mysqli extension ini pada dasarnya adalah perbaikan
dari mysql extension dan dikembangkan untuk mendukung
fitur-fitur terbaru untuk MySQL 4.1 keatas.
• Hampir semua fungsi yang ada pada mysql extension juga
tersedia pada mysqli. Syntax (aturan
mirip dengan mysql extension
5. KONEKSI MYSQL DENGAN PDO (PHP DATA
OBJECTS)
• Untuk menggunakan PDO, kita harus mengaksesnya menggunakan object. PDO tidak
menyediakan cara penulisan procedural style seperti mysqli atau mysql extension.
• Familiar dengan istilah pemrograman object / konsep OOP seperti class,
method, dan property, polymorphism, encapsulation, dan inheritance
6. DEFINISI
• PDO (PHP Data Objects) adalah interface universal yang disediakan PHP untuk
“berkomunikasi” dengan database server.
• Istilah “interface universal” 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
untuk database baru.
• PDO bekerja dengan metode yang disebut “data-access abstraction layer”. Artinya,
apapun jenis database server yang digunakan, kode PHP yang ditulis akan tetap
• PDO menyediakan “abstraction layer” untuk berkomunikasi dengan database server.
7. JENIS DATABASE SERVER YANG
DIDUKUNG PDO
• CUBRID
• MS SQL Server
• Firebird
• IBM
• Informix
• MySQL
• MS SQL Server
• Oracle
• ODBC and DB2
• PostgreSQL
• SQLite
• 4D
8. CARA 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,
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
• mengaktifkan driver untuk database lainnya? Caranya adalah mengubah
setingan php.ini.
9. • Silahkan buka file php.ini dengan aplikasi text editor, kemudian search kata “pdo”.
• Hasil pencarian “pdo” akan tampil pada baris ke-1010.
• Untuk mengaktifkannya, silahkan hapus tanda titik koma (;) dari awal baris nama driver
yang ingin digunakan.
10. MEMBUAT KONEKSI PHP MYSQL DENGAN
PDO CONSTRUCTOR
• Argumen dari constructor PDO terdiri dari 3 bagian, bagian pertama berisi nama
database server (misalnya:mysql) kemudian diikuti dengan alamat server dan nama
database, semuanya di dalam 1 string. Untuk argumen kedua diisi dengan nama user,
dan argumen ketiga berisi password user.
11. CARA MENAMPILKAN PESAN KESALAHAN
(ERROR) PADA PDO
• Untuk menampilkan pesan kesalahan dengan exceptions pada PDO,
terdapat 3 pilihan metode. Ketiga metode ini menggunakan
method PDO::setAttribute(PDO::ATTR_ERRMODE):
– $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT );
– $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
– $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
12. • PDO::ERRMODE_SILENT adalah pilihan default. Jika kita tidak mengubah setingan
error, pilihan inilah yang digunakan. Untuk mengecek error, kita bisa menggunakan
method PDO::errorCode() dan PDO::errorInfo().
• PDO::ERRMODE_WARNING digunakan untuk menampilkan error berupa warning
PHP, kemudian PHP akan melanjutkan proses eksekusi program. Pilihan ini cocok
untuk proses debugging.
• PDO::ERRMODE_EXCEPTION digunakan untuk menampilkan error dengan
exceptions. Pilihan inilah yang sering digunakan untuk menampilkan error dengan
TRY…CATCH.