[PHP] CRUD Menggunakan PDO [Bagian 1]
PDO (PHP Data Objects)
Pada PHP versi 5.5 extension MySQL (mysql_query) tidak digunakan lagi yang kemudian digantikan dengan MySQLi (MySQL Improved) atau PDO (PHP Data Objects). Perbedaan MySQLi dengan PDO adalah pada dukungan databasenya. MySQLi hanya mendukung database MySQL sedangkan PDO dapat mendukung beberapa database yaitu :
- Cubrid
- FreeTDS / Microsoft SQL Server / Sybase
- Firebird
- IBM DB2
- IBM Informix Dynamic Server
- MySQL 3.x/4.x/5.x
- Oracle Call Interface
- ODBC v3 (IBM DB2, unixODBC and win32 ODBC)
- PostgreSQL
- SQLite 3 and SQLite 2
- Microsoft SQL Server / SQL Azure
- 4D
Untuk mengecek apakah driver database apasaja yang tersedia buat file .php yang berisi kode di bawah ini
1 | var_dump(PDO::getAvailableDrivers()); |
Di Linux saya belum semua driver database terinstall, jadi hasilnya hanya 2 driver database saja yaitu MySQL dan SQLite.
1 | array(2) { [0]=> string(5) "mysql" [1]=> string(6) "sqlite" } |
Saya sudah pernah menulis source code untuk CRUD dengan menggunakan extension MySQL dan CRUD dengan menggunakan MySQLi. Kali ini giliran CRUD dengan menggunakan PDO.
Database latihan_php
Pertama buat dulu database latihan_php
1 2 3 4 5 6 7 8 9 10 11 | CREATE DATABASE 'latihan_php'; USE 'latihan_php'; CREATE TABLE IF NOT EXISTS 'buku_telp' ( 'id' int(5) NOT NULL AUTO_INCREMENT, 'nama' varchar(50) NOT NULL, 'alamat' varchar(50) NOT NULL, 'telp' varchar(50) NOT NULL, 'email' varchar(50) NOT NULL, PRIMARY KEY ('id') ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
Koneksi Database
Buat file connect_db.php untuk database MySQL.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php $host = "localhost"; $db_name = "latihan_php"; $username = "root"; $password = "root"; try { $con = new PDO("mysql:host={$host};dbname={$db_name}", $username, $password); } // to handle connection error catch(PDOException $exception){ echo "Gagal terkoneksi ke database: " . $exception->getMessage(); } ?> |
Sekarang coba akses connect_db.php dari browser. Jika tidak tampil pesan Gagal terkoneksi ke database maka connect_db.php sudah berhasil terkoneksi ke database MySQL.
bersambung …
Referensi :
codeofaninja.com – php and mysql crud tutorial
php.net – pdostatement, bindparameter
php.net – migration php5 deprecated
phpro.org – introduction to php pdo