Skip to main content

PHP : Migrasi dari Ekstensi Mysql ke PDO

Pasti saat pertama kali belajar pemrograman PHP sebagian besar dari kita mempelajari fungsi mysql_*** (mysql_connect(), mysql_query(), mysql_fetch_array(), dll ) untuk berinteraksi dengan database MySql.
Bersiap-siap lah mempelajari cara baru untuk melakukan operasi database karena tim pengembang PHP menyatakan akan membuang fungsi-fungsi ektensi mysql (mysql_***) pada rilis PHP mendatang. Berdasarkan link ini tim pengembang memang akan membuang fungsi ektensi mysql tetapi tidak dengan cara tiba-tiba.
Greetings PHP geeks,
Don’t panic! This is not a proposal to add errors or remove this popular extension. Not yet anyway, because it’s too popular to do that now.
The documentation team is discussing the database security situation, and educating users to move away from the commonly used ext/mysql extension is part of this.
Berdasarkan pengumuman itu pula para pengembang PHP disarankan untuk menggunakan 2 alternatif pengganti ekstensi mysql, yaitu pdo_mysql dan mysqli.
Nah, kalau tidak percaya silahkan saja baca sendiri di link diatas tadi :D
Kalau sudah membaca berarti sekarang saatnya belajar menggunakan PDO untuk berinteraksi dengan database apapun, bukan hanya MySql. Bagaimana? jauh lebih keren kan?
PHP PDO

Koneksi ke Database

PDO ini mendukung beberapa database populer, tidak hanya mysql seperti yang didukung oleh fungsi mysql_***. Beberapa database yang disupport oleh PDO diantaranya :
  • MySql
  • Firebird
  • IBM DB2
  • PostgreSql
  • Sql Lite
Untuk melakukan koneksi terhadap database MySql, kita menggunakan cara sebagai berikut
<?php

/*** mysql hostname ***/
$hostname = 'localhost';

/*** mysql username ***/
$username = 'username';

/*** mysql password ***/
$password = 'password';

/*** mysql database ***/
$database= 'namaDatabase';
try {
    $dbh = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
    /*** mencetak pesan kalau database sudah berhasil terhubung ***/
    echo 'Terkoneksi dengan database';
    }
catch(PDOException $e)
    {
    echo $e->getMessage();
    }
?>
Dilihat dari syntax diatas terlihat bahwa PDO menggunakan konsep OOP. Nah.. karena PHP kedepannya memang mengarah ke jalur OOP maka sudah seharusnya untuk mulai belajar paradigma pemrograman berorientasi objek :D.
Setiap kali kita sudah membuka koneksi ke sebuah database maka kita wajib untuk menutupnya ketika sudah tidak digunakan lagi. Untuk menutupnya kita cukup memberi nilai null terhadap objek koneksi
<?php

/*** mysql hostname ***/
$hostname = 'localhost';

/*** mysql username ***/
$username = 'username';

/*** mysql password ***/
$password = 'password';

/*** mysql database ***/
$database= 'namaDatabase';
try {
    $koneksi = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
    /*** mencetak pesan kalau database sudah berhasil terhubung ***/
    echo 'Terkoneksi dengan database';
    
   /*** Menutup koneksi ***/
    $koneksi=null;
    }
catch(PDOException $e)
    {
    echo $e->getMessage();
    }
?>

Insert Query

Untuk memasukkan data kedatabase tentunya kita menggunakan query insert. Bagaimana penggunaannya pada PDO?, simak contoh berikut. Saya menggunakan Prepared Statement karena teknik ini aman dari gangguansql injection selain itu objek prepared statment dicompile terlebih dahulu sehingga untuk pemanggilan selanjutnya akan cepat.
<?php

/*** mysql hostname ***/
$hostname = 'localhost';

/*** mysql username ***/
$username = 'username';

/*** mysql password ***/
$password = 'password';

/*** mysql database ***/
$database= 'namaDatabase';
try {
    $koneksi = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
    /*** mencetak pesan kalau database sudah berhasil terhubung ***/
    echo 'Terkoneksi dengan database';
    
    /*** Nilai dalam variabel ***/
    $nim="L2F008002";
    $nama="Agung Setiawan";
    $jenisKelamin="Laki-Laki";

   /*** perintah eksekusi query ***/
    $preparedStatement=$koneksi->prepare("INSERT INTO mahasiswa(nim,nama,jenis_kelamin) value(:nim,:nama,:jenisKelamin) ");
    $preparedStatement->bindParam(":nim",$nim);
    $preparedStatement->bindParam(":nama",$nama);
    $preparedStatement->bindParam(":jeniskelamin",$jenisKelamin);
    $preparedStatement->execute();
    
    /*** menutup koneksi ***/
    $koneksi=null;
    }
catch(PDOException $e)
    {
    echo $e->getMessage();
    }
?>
Tidak sesulit yang dibilang orang-orang kan tentang bagaimana itu OOP :-)

Update Query

Kalau sudah ada data yang masuk pada database besar kemungkinan suatu saat kita ingin mengubah data tersebut. Disnilah peran query upadatedimainkan.
Tekniknya hampir sama dengan teknik insert data diatas.
<?php

/*** mysql hostname ***/
$hostname = 'localhost';

/*** mysql username ***/
$username = 'username';

/*** mysql password ***/
$password = 'password';

/*** mysql database ***/
$database= 'namaDatabase';
try {
    $koneksi = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
    /*** mencetak pesan kalau database sudah berhasil terhubung ***/
    echo 'Terkoneksi dengan database';
    
    /*** Nilai dalam variabel ***/
    $nim="L2F008002";
    $nama="Agung Setiawan ST";

   /*** perintah eksekusi query ***/
    $preparedStatement=$koneksi->prepare("UPDATE mahasiswa set nama=:nama where nim=:nim ");
    $preparedStatement->bindParam(":nim",$nim);
    $preparedStatement->bindParam(":nama",$nama);
    $preparedStatement->execute();
    
    /*** menutup koneksi ***/
    $koneksi=null;
    }
catch(PDOException $e)
    {
    echo $e->getMessage();
    }
?>

Select Query

Untuk melakukan pengambilan data pada database pun tidak kalah gampangnya dari teknik-teknik yang telah saya perkenalkan diatas. Silahkan disimak pada code dibawah ini
<?php

/*** mysql hostname ***/
$hostname = 'localhost';

/*** mysql username ***/
$username = 'username';

/*** mysql password ***/
$password = 'password';

/*** mysql database ***/
$database= 'namaDatabase';
try {
    $koneksi = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
    /*** mencetak pesan kalau database sudah berhasil terhubung ***/
    echo 'Terkoneksi dengan database';
    
    /*** Nilai dalam variabel ***/
    $nim="L2F008002";

    /*** Perintah Eksekusi Query ***/
    $preparedStatement=$koneksi->prepare("SELECT nim,nama,jenis_kelamin from mahasiswa where nim=:nim");
    $preparedStatement->bindParam(":nim",$nim);
    $preparedStatement->execute();
    
    /*** Menampikan Hasil Perintah Select ***/
    $results=$preparedStatement->fetchAll();
    foreach($results as $result){
      echo $result["nim"];
      echo $result["nama"];
      echo $result["jenis_kelamin"];
    }
    
    /*** menutup koneksi ***/
    $koneksi=null;
    }
catch(PDOException $e)
    {
    echo $e->getMessage();
    }
?>

Delete Query

yang terakhir adalah cara untuk menghapus data
Teknik ini masih gampang juga seperti sebelumnya jadi tenang saja
<?php

/*** mysql hostname ***/
$hostname = 'localhost';

/*** mysql username ***/
$username = 'username';

/*** mysql password ***/
$password = 'password';

/*** mysql database ***/
$database= 'namaDatabase';
try {
    $koneksi = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
    /*** mencetak pesan kalau database sudah berhasil terhubung ***/
    echo 'Terkoneksi dengan database';
    
    /*** Nilai dalam variabel ***/
    $nim="L2F008002";

    /*** Perintah Eksekusi Query ***/
    $preparedStatement=$koneksi->prepare("DELETE FROM mahasiswa where nim=:nim");
    $preparedStatement->bindParam(":nim",$nim);
    $preparedStatement->execute();
    
    
    /*** menutup koneksi ***/
    $koneksi=null;
    }
catch(PDOException $e)
    {
    echo $e->getMessage();
    }
?>

Kesimpulan

Bagaimana tanggapan teman-teman setelah mengenal PDO serta cara penggunaanya sekaligus teknik OOP?
Pastinya mulai sekarang biasakan menggunakan teknik OOP dalam melakukan pemrograman.
Pastinya juga mulai tinggalkan fungsi ektensi mysql karena dalam waktu depan akan dihilangkan
Semoga tulisan ini bermanfaat
Salam Coding dari Nusantara

Comments

Popular posts from this blog

Cara Menggunakan Adobe Photoshop CS5

TIPS HACK TWITERR

TUTORIAL MEMBUAT TEKS USANG DENGAN PHOTOSHOP