Tutorial PHP MySQL Part 17: Cara Menampilkan Data dengan mysqli Prepared Statements

Posted on

Pada panduan belajar PHP MySQL kali ini kita akan membahas mengenai pemakaian prepared statements, yakni cara menampilkan data MySQL menggunakan mysqli prepared statements.

Seperti lazimnya, karena mysqli mempunyai 2 jenis gaya pemrograman (procedural style dan object style), saya akan membahas keduanya secara terpisah.


Cara Menampilkan Data MySQL Menggunakan Prepared Statements mysqli

Setelah membahas teori mengenai pengertian prepared statements di panduan sebelumnya, kita akan seketika praktek mengenai cara pemakaian prepared statements bagi menampilkan sebuah data dari database MySQL.

Kali ini saya akan mencoba menampilkan tabel mahasiswa_ilkom dengan prepared statements. Tabel ini kita bikin di panduan PHP MySQL: Cara Menampilkan Tabel MySQL dari PHP (mysql_fetch_row).

Seperti yang telah dibahas, bagi membangun prepared statements, kita membutuhkan 3 langkah: prepared, bind, dan excecute.

Langkah pertama-tama: prepared

Selaku contoh, saya ingin menampilkan seluruh kolom dari tabel mahasiswa_ilkom dimana nama mahasiswanya ialah “Neil Situmorang”. Sesuai dengan fungsinya, di pada proses prepared ini kita hanya butuh mempersiapkan query MySQL, tanpa ada data.

Bagi proses prepared, mysqli PHP menyediakan kegunaan mysqli_prepare(). Guna ini membutuhkan 2 argumen, yakni variabel hasil pemanggilan kegunaan mysqli_connect(), dan prepared query yang akan dijalankan. Berikut ialah contoh penulisannya:

Hasil pemanggilan kegunaan mysqli_prepare() berikutnya disimpan kedalam variabel $stmt. Variabel ini akan kita gunakan di pada proses bind, execute dan pada proses menampilkan data. Kamu bebas jikalau ingin menukar variabel ini dengan nama lain.

Secara internal, ketika kita menggunakan kegunaan mysqli_prepare(), query tersebut seketika di kirim ke MySQL Server. Berikutnya di pada MySQL, query akan disimpan sementara menunggu proses bind.

Langkah kedua: bind

Di proses bind, kita akan mengirimkan data kepada MySQL. Data yang akan dikirim ialah bagi menggantikan tanda “?” yang sebelumnya dibangun di proses prepared. Di pada mysqli PHP, proses bind dilakukan menggunakan kegunaan mysqli_stmt_bind_param(). Guna ini membutuhkan setidaknya 3 buah argumen, berikut contohnya:

Argumen pertama-tama dari kegunaan mysqli_stmt_bind_param() ialah variabel hasil pemanggilan kegunaan mysqli_prepare(), pada contoh kita ialah varabel $stmt.

Argumen kedua ialah string yang menunjukkan jenis tipe data argumen ketiga, yakni data yang akan diinput kedalam query (kita akan membahas isi argumen kedua ini sesaat lagi).

Argumen ketiga ialah data yang akan menggantikan tanda “?” dari query, pada contoh kita ialah “Neil Situmorang”. Tetapi karena kegunaan mysqli_stmt_bind_param() membutuhkan data pada format variabel, saya mesti menyimpannya terlebih dahulu ke pada variabel $nama_mhs.

Argumen kedua dari kegunaan mysqli_stmt_bind_param() membutuhkan pembahasan tersendiri. Argumen ini berisi data string yang menunjukkan jenis tipe data argumen ketiga. PHP menyediakan 4 jenis tipe data:

  • i = variabel bertipe integer
  • d = variabel bertipe double
  • s = variabel bertipe string
  • b = variabel bertipe blob (binary)

Karena di pada contoh saya mengunakan variabel $nama_mhs yang bertipe string, karenanya di pada argumen kedua ditulis: “s”. Tetapi apabila saya mengganti variabel ketiga menjadi umur yang bertipe integer, karenanya argumen kedua ini menjadi “i”.

Langkah ketiga: execute

Setelah proses bind selesai, langkah berikutnya ialah menjalankan query dengan menggunakan kegunaan mysqli_stmt_execute(). Guna ini membutuhkan 1 buah argumen, yakni variabel hasil pemanggilan kegunaan mysqli_prepare():

Guna mysqli_stmt_execute() menginstruksikan kepada MySQL bagi segera menjalankan petunjuk prepared statement yang telah dibangun. Hingga disini proses menjalankan petunjuk query telah terkirim ke MySQL. Berikutnya, kita akan menampilkan data hasil query.

Menampilkan data hasil query

Bagi menampilkan hasil query, kita mengambil data MySQL dengan kegunaan mysqli_stmt_get_result(). Guna ini membutuhkan 1 argumen berupa variabel hasil kegunaan mysqli_prepare(). Guna ini pun mengembalikan nilai bertipe resources yang berikutnya dapat digunakan bagi menampilkan data.

Berikutnya, bagi menampilkan data kita dapat menggunakan cara lazimnya menggunakan mysql_fetch_row() atau mysql_fetch_array():

Langkah terakhir yang bersifat opsional (alternatif) ialah menutup proses prepared statement dengan kegunaan mysqli_stmt_close(). Tetapi sama dengan kegunaan mysqli_close(), jikalau kita tak menulisnya, PHP secara otomatis akan menutup koneksi ke MySQL ketika halaman selesai di proses.

Dengan menggabungkan seluruh fungsi-fungsi prepared statements yang telah kita bahas, berikut ialah contoh kode programnya secara komplit:

Seandainya kode program diatas dijalankan, hasilnya ialah selaku berikut:

Selain fungsi-fungsi yang kita bahas di panduan kali ini, saya pun menambahkan kegunaan bagi memeriksa kesalahan seperti yang pernah kita bahas di panduan cara menampilkan pesan kesalahan (error) mysqli, yakni kegunaan mysqli_errno dan mysqli_error().


Prepared Statement mysqli Object Style

Selaku alternatif, berikut ialah cara penulisan prepared statement menggunakan object style mysqli. Method yang digunakan relatif hampir sama dengan procedural style yang kita bahas diatas.


Pada panduan PHP MySQL kali ini kita telah membahas mengenai cara penggunaan prepared statements MySQL untuk menampilkan data. Di panduan berikutnya kita akan bahas cara menggunakan mysqli prepared statement untuk proses input data kedalam database MySQL.


Sumber https://www.duniailkom.com/