Tutorial PHP MySQL Part 23: Cara Menggunakan Prepared Statements dengan PDO PHP

Posted on

Pada 2 panduan PDO PHP sebelumnya, kita telah membahas cara menampilkan dan menginput data MySQL dengan cara “normal”. Di panduan belajar PHP MySQL kali ini kita akan membahas cara menjalankan query MySQL dengan metoda yang lebih advanced menggunakan prepared statements dengan PDO.


Cara Menginput Data MySQL dengan Prepared Statement PDO

Pembahasan mengenai apa itu prepared statement telah saya bahas dengan komplit pada Tutorial PHP MySQL: Pengertian dan Cara Penggunaan Prepared Statements mysqli. Kali ini kita akan lihat bagaimana cara menggunakannya di pada extension PDO.

Seketika saja kita masuk kedalam contoh program. Kali ini saya ingin menambahkan 1 data kedalam tabel mahasiswa_ilkom menggunakan prepared statement dengan PDO:

Seperti yang pernah kita bahas di mysqli extension, bagi menjalankan prepared statement, kita membutuhkan 3 langkah: prepare, bind dan execute.

Proses prepare dijalankan menggunakan method $dbh->prepare(). Method ini membutuhkan 1 argumen berupa command query yang akan dijalankan. Hasil dari method kemudian disimpan kedalam variabel $stmt. Variabel inilah yang akan kita gunakan dalam rentang waktu menjalankan proses prepared statement.

Proses bind dilakukan menggunakan method $stmt->bindParam(). Method ini membutuhkan 2 argumen. Argumen pertama-tama yakni angka urutan dari “tempat data” yang ditulis di proses prepare. Karena di proses prepare saya menuliskan: ‘INSERT INTO mahasiswa_ilkom VALUES (?, ?, ?, ?, ?)’, karenanya setiap tanda “?” mesti di bind. Urutan tanda “?” inilah yang digunakan pada argumen pertama-tama method $stmt->bindParam().

Bagi argumen kedua method $stmt->bindParam() yakni variabel penampung yang nantinya akan diisi data. Berikutnya setiap variable yang di defenisikan akan saya input nilai yang sesuai.

Setelah seluruh data diinput kedalam variabel, kita tinggal menjalankan method $stmt->execute() bagi menjalankan query prepared statement.

Jikalau kamu menjalankan kode program diatas, hasilnya yakni selaku berikut:

Agar lebih yakin, kamu dapat menambahkan kode program diatas bagi menampilkan seluruh isi tabel mahasiswa_ilkom.

Selain menggunakan tanda “?” bagi menandakan bagian dari data, PDO PHP pun menyediakan cara lain, yakni dengan menuliskan ‘nama bagi data’ atau dikenal dengan “named parameters prepared statements”.

Berikut yakni revisi contoh program menggunakan named parameters prepared statemant:

Perbedaan dari kode program sebelumnya yakni di cara penulisan query dan argumen method bindParam(). Kali ini kita menggunakan named variable (diawali dengan tanda “:”), seperti :nim_mhs, :nama_mhs, atau :umur_mhs. Named variable ini berikutnya menjadi argumen pertama-tama method $stmt->bindParam().

Versi penulisaan terakhir prepared statement yang akan kita pelajari yakni dengan menggabungkan proses bind dan execute sekaligus. Agar cara ini dapat dijalankan, data dari prepared statement mesti dibangun pada wujud array. Berikut contohnya:

Perbedaan pada kode program diatas terletak pada $stmt->execute(). Kali ini method $stmt->execute() kita input dengan array selaku argumen yang akan menjadi ‘data’ bagi query. Dengan cara ini kita tak perlu menggunakan method $stmt->bindParam().


Cara prepared statement yang kita pelajari disini dapat menjadi alternatif dari cara menjalankan query MySQL dengan sistem lazim menggunakan $dbh->query(). Prepared statements mungkin masih relatif jarang kamu jumpai, namun metoda ini menawarkan keamanan yang lebih dan banyak digunakan di pada program PHP yang lebih luas seperti framework PHP.


Sumber https://www.duniailkom.com/