Kali ini Kamar muka mau nge'bahas tentang PDO. Apa sih PDO itu? yarp... dari singkatannya PDO adalah PHP Data Objek. laah...!!! trus apa bedanya sma PHP biasa?
sepintas tidak ada bedanya, menurut saya sih PDO itu lebih memberikan 1 tingkat level keamanan. misalnya, mengantisipasi adanya SQL Injection yg biasa dilakukan oleh tangan2 jail (Hacker). haallaaah... apalah itu. pokoke PDO itu bla..bla..blaa... deh...!!!
dibawah ini adalah contoh query insert. bisa dilihat klw sintak nya menggunakan PHP biasa.
<?php
$host = "localhost";
$user = "root";
$password = ""; //password agan
$database_name = "makan";
mysql_connect($host, $user, $password);
mysql_select_db($database_name);
$query = "insert into piring (id,primer,lauk,minum) values ('001','Nasi', 'kerupuk','air_putih')";
hasil = mysql_query($query);
if($hasil){
echo "Makanan telah disiapkan";
}else{
echo "Error! gagal menyaji makanan:".mysql_error();
}
Ok...!!! sekarang kita sulap ke PDO, contohnya kya gini sih. (kalo gak salah)
<?php
$host = "localhost";
$user = "root";
$password = ""; //password agan
$database_name = "makan";
$pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password, array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
));
try{
$query = $pdo->prepare("insert into piring (id,primer,lauk,minum)
values (:id,:primer,:lauk,:minum)");
$dataSiswa = array(
':id' => '001',
':primer' => 'nasi',
':lauk' => 'kerupuk',
':minum' => 'air_putih'
);
$query->execute($dataSiswa);
echo "Makanan telah disiapkan";
}catch(PDOException $e){
echo "Error! gagal menyaji makanan:".$e->getMessage();
}
Ok Next. Query insert telah di lakukan, sekarang menampilkan data.
<?php
$host = "localhost";
$user = "root";
$password = ""; //password agan
$database_name = "makan";
mysql_connect($host, $user, $password);
mysql_select_db($database_name);
$query = mysql_query("select * from piring");
while($piring = mysql_fetch_array($query)){
echo $piring['id'];
echo $piring['primer'];
echo $piring['lauk'];
echo $piring['minum']
}
Nah... jika menggunakan PDO, contohnya kya gini. (Mudamudahan gak salah sih)
<?php
$host = "localhost";
$user = "root";
$password = ""; //Password agan
$database_name = "makan";
$pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password, array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ));
$query = $pdo->prepare("select * from piring");
$query->execute();
while($piring = $query->fetch()){
echo $piring['id'];
echo $piring['primer'];
echo $piring['lauk'];
echo $piring['minum'];
}
Ok lanjut lagi... sekarang untuk mengedit data yg telah di buat.
<?php
$host = "localhost";
$user = "root";
$password = ""; //Password agan
$database_name = "makan";
mysql_connect($host, $user, $password);
mysql_select_db($database_name);
$query = "update piring set primer = 'bubur',lauk = 'garam',minum='kopi' where id='001'";
$hasil = mysql_query($query);
if($hasil){
echo "Menu makanan diganti";
}else{
echo "Error! gagal mengganti menu makanan".mysql_error();
}
Nah.. di ubah lagi ke PDO (Sekali lagi SEMOGA)
<?php
$host = "localhost";
$user = "root";
$password = ""; //password agan
$database_name = "makan";
$pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password, array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
try{
$query = $pdo->prepare("update piring set primer=:primer, lauk=:lauk, minum=:minum where id=:id");
$data = array(
':primer' => 'bubur',
':lauk' => 'garam',
':minum' => 'kopi',
':id' => '001'
);
$query->execute($data);
echo "Menu makanan diganti";
}catch(PDOException $e){
echo "Error! gagal mengganti menu makanan:".$e->getMessage();
}
Terakhir, menghapus data yg diinput
<?php
$host = "localhost";
$user = "root";
$password = ""; //Password agan
$database_name = "makan";
mysql_connect($host, $user, $password);
mysql_select_db($database_name);
$id = "001";
$hasil = mysql_query("delete from piring where id='".$id."'");
if($hasil){
echo "Makanan habis";
}else{
echo "Makanannya gak habis:".mysql_error();
}
Sedangkan jika menggunakan PDO akan menjadi:
<?php
$host = "localhost";
$user = "root";
$password = ""; //password agan
$database_name = "makan";
$pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password, array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
try{
$query = $pdo->prepare("delete from piring where id=:id");
$query->execute(array(
':id' => '001'
));
echo "Makanan habis";
}catch(PDOException $e){
echo "Makanannya gak habis".$e->getMessage();
}
Keuntungan Menggunakan PDO
Beberapa manfaat yang dapat diperoleh dari menggunakan PDO. Pertama PDO membantu mencegah SQL injection, PDO secara otomatis akan mengquote inputan user. Kedua PDO bisa digunakan untuk mengakses beberapa database berbeda. Jika hari ini kita menggunakan database MySQL, pada saat berganti database ke PostgreSQL maka tidak perlu lagi mengubah kode yang sudah dibuat. Yang ketiga PDO sudah mendukung database transaction. Yang keempatPDO lebih cepat bila dibandingkan dengan menggunakan fungsi mysql_query.
#Tobe Continue