CandraLab

IT Pro & Developer Resource

Menu Close

Pemrograman Database PHP dengan PDO

Ini adalah tutorial ketiga dari empat tutorial yang membahas tentang teknik koneksi database di PHP. Teknik sebelumnya telah membahas tentang teknik PHP MYSQL klasik dan teknik menggunakan MYSQLi. Pertanyaannya adalah, bagaimana kalau website yang akan kita bagun, ingin migrasi database ke oracle atau ke vendor selain mySQL?.

PDO adalah penyelamat anda. Pernahkah anda berpikir bagaimana CMS dan PHP framework bisa mendukung multiple database hanya dengan mengubah konfigurasinya? Itu karena CMS dan PHP framework itu menggunakan PDO. Biasanya CMS yang memakai PDO minimal menawarkan akses mySQL,SQLite, Postgres dan Oracle. Dengan PDO, jika kita pindah database (secara teori) kita hanya mengubah konfigurasi saja tanpa harus susah payah mengganti kode satu satu di ratusan file PHP yang kita punya. Gimana, keren ga?

Untuk tampilan, rancangan table serta struktur project masih sama dengan tutorial pertama. Bagian ini fokus pada cara mendeteksi Apakah PDO disupport oleh Server anda dan sample code CRUDnya saja.

Cara mendeteksi PDO

cara termudah untuk mendeteksi support PDO adalah menggunakan script ini


print_r(PDO::getAvailableDrivers());

Cara yang lebih mudah, gunakan phpinfo(). Berikut ini contoh tampilan support PDO di XAMPP.

Dukungan PDO SQlite dan MYSQL di PHP

Dukungan PDO SQlite dan MYSQL di PHP

Sample kode

Sample ini menggunakan driver PDO MySQL dan menggunakan teknik name paramater.

Koneksi

//koneksi MYSQL dengan PDO
$db=new PDO('mysql:host=localhost;dbname=candralab;charset=utf8','root','');

//contoh kalo postgresql
//$db=new PDO('pgsql:host=namaserverorIP;dbname=namadatabase;charset=utf8','usernamedb','passworddb');

tampil

        $sql="select * from kampus ";
         $stmt=$db->query($sql);
         while($kampus=$stmt->fetch(PDO::FETCH_OBJ)){
        echo $kampus->nama;
        echo $kampus->alamat;
      } 


insert

	$sql = "INSERT INTO kampus(nama,alamat)
		VALUES(?,?)";

	 $stmt=$db->prepare($sql);
   $result=$stmt->execute(array($nama,$alamat));
	

Update

$sql = "update kampus set nama=?,
    alamat=?
    where idkampus=?";
	 $stmt=$db->prepare($sql);
   $result=$stmt->execute(array($nama,$alamat,$id));

Delete

	$sql = "delete from kampus
    where idkampus=?";
       $stmt=$db->prepare($sql);
   $result=$stmt->execute(array($id));

Setelah kita tahu manfaat PDO, apakah ada cara yang lebih mudah,kode lebih pendek dan query secara default aman dari SQL injection? Jika anda menjawab dengan PHP framework, anda benar tapi kurang akurat. Lebih tepat Gunakan ORM. Makanan apa lagi ini? cek tutorial ORM dengan PHP Active Record di artikelselanjutnya. ORM merubah total teknik query database dan menhemat waktu coding secara significant.