Cara Menggunakan Query Prepare PDO

bindparam, pdo prepared statements, stmt->bind_param('s email), prepared statements sql injection, php prepared statements, what is prepared statemen
Pada pembahasan sebelumnya kita telah berhasil membuat sebuah aplikasi sederhana untuk menampilkan data yang berasal dari tabel buku. Query prepared merupakan sebuah fasilitas yang disediakan oleh PDO untuk berinteraksi dengan database server.

Statement Prepared

PDO menyediakan sebuah fungsi PDO::exec() dan PDO::Query yang sudag dibahas pada sebelumnya untuk mengirimkan perintah secara langsung ke database, perintah yang diberikan akan langsung dieksekusi. 

PDO menyiapkan sebuah cara pengiriman perintah ke database server dengan melakukan persiapan terlebih dahulu sebelum dilakukan eksekusi terhadap perintah SQL tersebut. berikut beberapa method yang digunakan untuk melakukan Query Prepared :

  1. PDO::prepare(), method ini digunakan untuk membuat sebuah perintah SQL yang dipersiapkan, method ini mengembalikan sebuah objek berupa PDO::statement.
  2. PDOStatement::bindParam(), method ini dipergunakan untuk membinding atau menambahkan parameter yang ada para Query.
  3. PDOStatement::bindValue(), method ini digunakan untuk membinding patameter dengan sebuah nilai.
  4. PDOSttement::execute(), method ini digunakan untuk mengesekusi query yang telah diperisapkan.

Menulis Parameter 

saat menyiapkan sebuah query anda menuliskan parameter dalam nilai yang akan diisi. untuk menuliskan parameter, anda dapat menggunakan perintah sebagai berikut :

cara ke-1 :
:nama_parameter

cara ke-2
menggunakan tanda tanya "?"
contoh :
insert into buku (kode_buku,judul,pengarang) values (:kode_buku,:judul,:pengarang) atau
insert into buku (kode_buku,judul,pengarang) values (?,?,?)

Binding Data

setelah membinding parameter berikutnya membinding value atau memasukan sebuah nilai terhadap parameter tersebut dengan method PDOStatement::bindValue(). kemudian setelah megisi nilai  tentu saja kita melakukan ekseskusi terhadap perintah yang telah dibuat dengan perintah PDOStatement::execute().

contoh :

$perintah="insert into buku (kode_buku,judul) values (?,?)";
$stmt=$conn->prepare($perintah);
$stmt->bindValue(1,$_POST['kode_buku']);
$stmt->bindValue(2,$_POST['judul']);
$stmt->execute();

atau

$perintah="insert into buku (kode_buku,judul) values (:kode_buku,:judul))";
$stmt=$conn->prepare($perintah);
$stmt->bindValue(:kode_buku,$_POST['kode_buku']);
$stmt->bindValue(:judul,$_POST['judul']);
$stmt->execute();