Cara menggunakan pdo php extension

Kebanyakan dari kita penggunaan database MySQL pada PHP kita lakukan dengan cara menggunakan mysql extension. Extension inilah yang memberikan kita fasilitas pengaksesan / penganganan database. Pengaksesan database dengan menggunakan MySQL pada PHP dapat dilakukan dengan tiga cara :

  1. MySQL extension
  2. MySQLi
  3. PDO MySQL

MySQL extension yang biasa kita gunakan seperti : mysql_connect(), mysql_query(), mysql_num_rows() dsb.Berikut ini adalah contoh mysql_extension


Contoh 1:


// mengakses database
$koneksi = mysql_connect("localhost","root","secret");
mysql_select_db("kampus");
$mhs_kel_jkt = mysql_query("SELECT * from mahasiswa where Kota_Kelahiran='Jakarta'"): 
$row = mysql_fetch($mhs_kel_jkt);
?>


Teknik penggunaan mysql_extension pada pemrograman PHP mulai ditinggalkan, sebagai generasi penerusnya telah mulai diperkenalkan MySQLi dan PDO pada PHP ver.5.0. Pada topik ini kita tidak membahas MySQLi. Berikut ini contoh penggunaan PDO seperti yang ditunjukkan oleh contoh 2:


Contoh 2:


//mengakses database
$dbh = new PDO('mysql:host=localhost;dbname=kampus','root','secret');
$statement= $pdo->query("SELECT * from mahasiswa where Kota_Kelahiran='Jakarta'");
$raw = $statement->fetch(PDO::FETCH_ASSOC);
?>


Apa itu PDO ?

PDO merupakan singkatan dari PHP Data Objects yang bertujuan memberikan metode seragam dalam penanganan  ke beberapa database yang didukung oleh Driver PDO seperti : MySQL, PostgreSQL, Informix, MSSQL, Oracle, SQLite, Firebird/Interbase dsb. Maksud dari kata seragam mengacu kepada pembuatan script PDO yang sama untuk segala jenis database yang disupport, hanya skrip koneksi stringnya saja yang berbeda.


Berikut ini contoh yang mengatakan bahwa PDO itu seragam. Database yang kita gunakan adalah PostgreSQL dan MySQL :


Contoh koneksi database PostgreSQL:


try{
   $db = new PDO("pgsql:dbname=pdo;host=localhost","root","secret");
   echo "Koneksi Database PDO berhasil"
}
catch(PDOException $e){
   echo $e->getMessage();
}

?>


Contoh koneksi database MySQL:


try{
   $db = new PDO("mysqlql:dbname=pdo;host=localhost","root","secret");
   echo "Koneksi Database PDO berhasil"
}
catch(PDOException $e){
   echo $e->getMessage();
}

?>


Dari contoh koneksi database Postgresql dan MySQL, tidak ada perbedaan kentara dalam penggunaan PDO. Untuk lebih memperjelas keseragaman PDO, kita akan mencoba membandingkan pengaksesan database mahasiswa untuk menampilkan nim, nama dan alamat yang akan kita implementasikan pada : MySQL dan Postgresql.

Tahap Pertama, kita akan gunakan cara biasa, yaitu MySQL extension dan PostgreSQL extension. Untuk database Postgresql, silahkan anda install terlebih dahulu databasenya, kemudian buka php.ini, hilangkan tanda ";" untuk  extension=php_pgsql.dll untuk mengaktifkan penggunaan sintax database posgresql. Database yang kita gunakan adalah mahasiswa yang terdiri dari 3 field, yaitu : nim, nama dan alamat seperti yang ditunjukkan oleh tabel berikut:


nim

nama

alamat

MH101

Andi Fabrioga

Kudus

MH102

Dadang Subagia

Solo


Berikut ini contoh pengaksesan dengan model mysql exntension yang ditunjukkan Contoh 1 dan PosgreSQL extension yang ditunjukkan Contoh 2

Contoh 1 :

Cara menggunakan pdo php extension
 
Cara menggunakan pdo php extension
  (Akses Database dengan MySQL extension)

  1. <?php

  2. /**

  3.  * Contoh Penggunaan MySQL Extension

  4.  * @author Pusat Ilmu Secara Detil

  5.  * @version 1.0

  6.  */

  7. mysql_connect("localhost", "root", "");

  8. mysql_select_db("mahasiswa");

  9. /*** Query Select ***/

  10. $query = mysql_query("select * from mhs");

  11. while($mhs = mysql_fetch_array($query))

  12. {

  13.         print $mhs['nim'] .' - '. $mhs['nama'] .' - '.$mhs['alamat']'
    '
    ;

  14. }

  15. ?>


Output Contoh 1 :

MH101 - Andi Fabrioga - Kudus
MH102 - Dadang Subagia - Solo


Contoh 2 :

Cara menggunakan pdo php extension
 
Cara menggunakan pdo php extension
   (AKSES DATABASE DENGAN POSTGRESQL EXTENSION)

  1. <?php

  2. /**

  3.  * Contoh Penggunaan PostgreSQL Extension

  4.  * @author Pusat Ilmu Secara Detil

  5.  * @version 1.0

  6.  */

  7. pg_connect("host=localhost port=5432 dbname=mahasiswa user=posgres password=root" );

  8. /*** Query Select ***/

  9. $query = pgs_query("select * from mhs");

  10. while($mhs = pg_fetch_array($query))

  11. {

  12.         print $mhs['nim'] .' - '. $mhs['nama'] .' - '.$mhs['alamat']'
    '
    ;

  13. }

  14.    

  15. ?>


Output Contoh 2 :
MH101 - Andi Fabrioga - Kudus
MH102 - Dadang Subagia - Solo
Pengaksesan diatas untuk posgresql, kita harus mencantumkan port yaitu : 5432. Dan sintak yang digunakan antara MySQL dan PosgreSQL berbeda, seperti : mysql_connect() dan pg_connect(), mysql_query()  dan pg_query(),  mysql_fetch_array() dan pg_fetch_array().

Berikut ini kita akan gunakan konsep PDO untuk kedua jenis contoh diatas yang akan ditunjukkan oleh Contoh 3 sebagai implementasi konsep PDO untuk contoh 1 dan Contoh 4 sebaga implementasi konsep PDO untuk contoh 2.

Contoh 3:

Cara menggunakan pdo php extension
 
Cara menggunakan pdo php extension
   (AKSES DATABASE DENGAN Pdo mysql)

  1. <?php

  2. /**

  3.  * Contoh Penggunaan PDO MySQL

  4.  * @author Pusat Ilmu Secara Detil

  5.  * @version 1.0

  6.  */

  7. try {

  8.     // setup koneksi

  9.    $dbh = new PDO("mysql:host=localhost;dbname=mahasiswa", "root", "",array(

  10.               PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));  

  11. }

  12. catch(PDOException $e)

  13. {

  14.     echo $e->getMessage();

  15.         echo 'Gagal Koneksi.Pastikan string koneksi sesuai
    '
    ;

  16. }

  17. /*** Query Select ***/

  18. $sql = $dbh->prepare("SELECT * FROM mhs");

  19. $sql->execute();

  20. while($mhs = $sql->fetch())

  21. {

  22.         print $mhs['nim'] .' - '. $mhs['nama'] .' - '.$mhs['alamat']'
    '
    ;

  23. }

  24.        

  25. ?>

Output Contoh 3 :
MH101 - Andi Fabrioga - Kudus
MH102 - Dadang Subagia - Solo

Contoh 4:

Cara menggunakan pdo php extension
 
Cara menggunakan pdo php extension
 

  1. <?php

  2. /**

  3.  * Contoh Penggunaan PDO PGSQL

  4.  * @author Pusat Ilmu Secara Detil

  5.  * @version 1.0

  6.  */

  7. try {

  8.     // setup koneksi

  9.    $dbh = new PDO("pgsql:host=localhost;dbname=mahasiswa", "root", "root",5432,array(

  10.               PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));  

  11. }

  12. catch(PDOException $e)

  13. {

  14.     echo $e->getMessage();

  15.         echo 'Gagal Koneksi.Pastikan string koneksi sesuai
    ';

  16. }

  17. /*** Query Select ***/

  18. $sql = $dbh->prepare("SELECT * FROM mhs");

  19. $sql->execute();

  20. while($mhs = $sql->fetch())

  21. {

  22.         print $mhs['nim'] .' - '. $mhs['nama'] .' - '.$mhs['alamat']. '
    ';

  23. }

  24. ?>

Output Contoh 4 :
MH101 - Andi Fabrioga - Kudus
MH102 - Dadang Subagia - Solo

Dari Contoh 3 dan Contoh 4, hampir tidak ada perbedaan dalam penggunaan database MySQL dan PostgreSQL. Kita cukup hanya merubah string koneksinya saja. Inilah yang disebut PDO memberikan layanan script PDO yang seragam kepada semua database yang disupportnya.

Pada artikel berikutnya kita akan membahas PDO sebagai abstraksi layer yang menjadi ide dasar kemunculan PDO.

Mengapa menggunakan PDO?

PDO bertujuan untuk membuat satu buah interface yang seragam untuk koneksi ke beragam jenis database. Ketika Anda menggunakan database yang didukung oleh PDO seperti misalnya MySQL, Oracle, MS.

Apa itu PDO MySQL?

PDO (PHP Data Objects) adalah interface universal yang disediakan PHP untuk “berkomunikasi” dengan database server. Maksud istilah “interface universal” disini adalah bahwa PDO tidak terikat dengan aplikasi database tertentu.

Apa perbedaan penggunaan mysqli dan PDO?

PDO menggunakan pemrograman objek, mysqli extension tersedia dalam bentuk objek dan prosedural (diakses melalui fungsi-fungsi) sedangkan mysql extension sepenuhnya menggunakan pemograman prosedural.