PHP Data Objects – Merupakan sebuah antarmuka umum (universal interface) yang disediakan oleh PHP dan digunakan untuk berkomunikasi dengan database. universal interface artinya PHP Data Objects tidak tergantung kepada aplikasi database tertentu.
Daftar isi :
Baca Juga : Mengenal PHP Data Objects
Method Fetch()
Jika kita melakukan operasi SQL menggunakan SELECT statement kemudian return yang didapatkan adalah sebuah result set yang kontenya hanya satu baris maka kita bisa mendapatkan data tersebut menggunakan method/function fetch() yang ada pada sebuah PDOstatement Object.
<?php
include('main.php');
$result = $con->query('SELECT nama, email FROM table1 where id = 3');
$res = $result->fetch();
$nama = $res['nama'];
$email = $res['email'];
echo $nama . " - " . $email;
?>
Konten result set tersebut hanya satu baris kemudian hasil dari result set tersebut disimpan kedalam variable $result yang selanjutnya kita menyebut variable ini sebagai sebuah PDOstatement Object.
Karena $result adalah sebuah PDOStatement Object, dia bisa memanggil method fetch() dan menghasilkan return sebuah array satu baris yang disimpan kedalam variable $res
Pada code diatas kita mengakses sebuah column pada array $res menggunakan string index.
$nama = $res['nama']; $email = $res['email'];
Kita juga bisa mengeksesnya menggunakan numeric index dengan code dibawah ini :
$nama = $res[0]; $email = $res[1];
Prepared Statement
Prepared statement adalah sebuah fitur yang digunakan untuk mengeksekusi perintah SQL yang berulang dengan tingkat efisiensi yang tinggi. Prepared statement terbagi menjadi dua fase yaitu fase prepare dan fase execute.
Pada fase prepare, SQL statement template dibuat dan dikirimkan ke Database Server. Contoh INSERT INTO table1 VALUES (?,?,?). Label ‘?’ disebutnya Question Mark Placeholder adalah sebuah parameter yang memiliki nilai.
Manfaatnya adalah performansi dan keamanan, secara performansi waktu parsing sql statement yang terjadi di server berkurang, meminimalisir bandwidth suatu server karena kita hanya mengirim nilai yang ada didalam parameter tanpa harus mengirimkan lagi SQL Statement dan secara keamanan untuk mencegah serangan SQL Injection pada database server.
Method BindParam
Dalam prepared statement kita bisa menyimpan sebuah nilai dalam parameter kedalam variable tertentu. Ada dua variable yaitu named placeholder dan question mark placeholder yang digunakan didalam SQL statement untuk melakukan prepare statement.
Fetch Style
Kita telah belajar mengenal method Fetch dalam sebuah PDOstatement Object hasil dari method Query pada class PDO. Kini kita akan mengenal lebih dalam method fetch dalam prepared statement, disini method fetch akan menggunakan parameter dan setiap parameter mempunyai style masing masing dalam memberikan result set. Perbedaanya kini kita akan menggunakan method Fetch dalam sebuah PDOstatement Object hasil dari method prepare.
<?php
try
{
$con = new PDO('mysql:host=localhost;dbname=oop', 'root', '', array(PDO::ATTR_PERSISTENT => true));
} catch (PDOException $e){
echo "Error!: " . $e->getMessage() . "<br/>";
die();
}
/* Mengeksekusi prepared statement dengan melakukan operasi binding variable */
$id = 3;
$sth = $con->prepare('SELECT nama, email
FROM table1');
$sth->bindParam(':id', $id, PDO::PARAM_INT);
$sth->execute();
$result = $sth->fetch(PDO::FETCH_ASSOC);
?>
Pada code diatas kita melakukan operasi fetching menggunakan method fetch dengan style fetch_assoc yang akan menghasilkan sebuah array yang indexnya menggunakan nama column dalam sebuah result set.
Untuk melihat bentuk result set itu sendiri kita bisa menggunakan statement code selanjutnya :
print_r($result);
Jika kita ingin mengetahui nilai atau elemen yang ada pada column nama dan column email kita tinggal mengakses Array $result menggunakan statement code selanjutnya.
echo "<br> Nama : " .$result['nama'] . "<br>"; echo "Email : " .$result['email'] . "<br> <br>";
Sumber : PHP en.wikipedia.org/