--> Skip to main content

Koneksi Database PDO PHP

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:
<?php
// 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:
<?php
//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:
<?php
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:
<?php
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 :
   (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']'<br />';
  14. }
  15. ?>

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

Contoh 2 :
    (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']'<br />';
  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:
    (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<br/>';
  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']'<br />';
  23. }
  24.        
  25. ?>
Output Contoh 3 :
MH101 - Andi Fabrioga - Kudus
MH102 - Dadang Subagia - Solo

Contoh 4:
  
  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<br/>';
  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']. '<br />';
  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.

Comment Policy: Silahkan tuliskan komentar Anda yang sesuai dengan topik postingan halaman ini. Komentar yang berisi tautan tidak akan ditampilkan sebelum disetujui.
Buka Komentar
Tutup Komentar