Menggunakan Prepared Statement Dalam PDO PHP

Prepared Statement yaitu semacam template yang dikompilasi untuk SQL bahwa aplikasi ingin menjalankan query atau mengirimkan data ke server. Dan dapat disesuaikan dengan parameter variabel. Yang secara otomatis membuat data kedalam penampung (placeholders) yang diklam dapat memanipulasi data agar terhindat dari SQL injection.


// argument pertama adalah nama  placeholders, yang kedua adalah nilainya
// placeholders selalu dimulai dengan colon(:)
$stmnt->bindParam(':name', $name);

Contoh Insert menggunakan Named Placeholders
$stmt = $dbh->prepare("INSERT INTO daftar (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name',$name);
$stmt->bindParam(':value',$value);

// Inser Data
$name = "D 1";
$value = "Data Pertama";
$stmt->execute();

Anda juga bisa menggunakan array Assosiatif
$data = array(
'name' => 'D 1',
'value' => 'Data Pertama'
);
$stmt = $dbh->prepare("INSERT INTO daftar (name, value) VALUES(:name, :value)");
$stmt->execute($data);

*nb : array key tidak perlu menggunakan colon (:) tetapi datanya harus cocok sesuai name placeholders.

Untuk data yang lebih dari satu atau banyak, anda dapat menggunakan array multidimensi, dan kemudian lakukan looping untuk meng-ekseskusi data.
$data = array(
array(
'name' => 'D 1',
'value' => 'Data Pertama'
),
array(
'name' => 'D 2',
'value' => 'Data kedua'
)
);
$stmt = $dbh->prepare("INSERT INTO daftar (name, value) VALUES ( :name, value)");
foreach($data as $value){
    $stmt->execute($value);
}

Menggunakan Unnamed placeholers
$stmt = $dbh->prepare("INSERT INTO daftar(name, value) VALUES ( ?, ? )");
// Tentukan variabel
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);
// insert data
$name = 'D 1';
$value = 'Data pertama';
$stmt->execute();

Anda juga bisa menggunakan array, asalkan nilainya sesuai dengan urutan index dalam array.
$data = array('D 1', 'Data pertama');
$stmt = $dbh->prepare("INSERT INTO daftar(name, value) VALUES ( ?, ? )");
$stmt->execute($data);

Perlu diketahui bahwa penulis masih berstatus newbie, jadi bila ada yang salah mohon dikoreksi sebagaimana mestinya. Untuk partisipasinya, saya ucapkan terima kasih. Jangan lupa untuk kembali lagi ke home ini.

1 komentar :

tombol share icon
tombol kembali ke atas
Wait . . . !!!
tampilan ads aktif