PDO PrepareStatement dan Object Instan Class

PrepareStatement adalah pre-compile dari pernyataan SQL yang dapat dieksekusi ( satu kali atau lebih ) dengan cara mengirimkan data ke server. Salah satu kegunaan dari PrepareStatement ini adalah untuk menghindari serangan SQL Injection, karena data yang akan dieksekusi harus ditempatkan terlebih dahulu pada pernyataan SQLnya, atau data tidak menyatu dalam satu pernyataan SQL tunggal.

Berikut contoh penggunaan PrepareStatement :

<?php
// preparestatement dengan data yang akan ditempatkan berupa “?”
$ps1 = $dbh->prepare(“INSERT INTO produk (kode,nama,harga) VALUES (?,?,?)”;
$data = array('P002','Pensil',4000);
$ps1->execute($data);

// preparestatement dengan bind parameter
$nama='Penghapus';
$harga=2500;
$kode='PX04';

$ps1->bindParam(1,$kode);
$ps1->bindParam(2,$nama);
$ps1->bindParam(3,$harga);
$ps1->execute();

$ps2 = $dbh->prepare(“UPDATE produk SET nama=:nama_edit,
                     harga=:harga_edit WHERE kode=:kode_edit”);
$nama='Pensil 2B';
$harga=7500;
$kode='P004';

$ps2->bindParam(':nama_edit',$nama)
$ps2->bindParam(':harga_edit',$harga);
$ps2->bindParam(':kode_edit',$kode);
$ps2->execute();

?>

PrepareStatement dan Object
Penggunaan PrepareStatement dapat dikombinasikan dengan object instan dari class, yaitu dengan cara melakukan casting object ke dalam array keys . Berikut contoh penggunaan pada instan object dari Class Produk :

class Produk {
   public $kode;
   public $nama;
   public $harga;

   function __construct($kd, $nm, $hg) {
     $this->kode = $kd;
     $this->nama = $nm;
     $this->harga = $hg;
   }
   // kode lainnya disini

}// tutup class 

  $ptv = new Produk('P003','TV 21inc',1200000);
  $ps = $dbh->prepare(“INSERT INTO produk (kode,nama,harga) VALUES
                (:kode,:nama,:harga))”;
  $ps->execute( (array) $ptv ); // casting object ke array keys

?>

Post a Response