Mencoba Prepared Statements MySQLi


Prepared Statemenst ini merupakan salah satu fitur dari MySQLi yang tidak terdapat pada MySQL extension.  Selain pada PHP MySQLi extension, fitur ini juga mendukung PDO (PHP Data Objects), kemudian teknik ini juga sangat umum digunakan pada lingkungan framework PHP, maka dari itu saya merasa bahwa hal ini sangat penting untuk perlu Saya ketahui dan coba.

Apa itu Prepared Statements MySQL ?

Prepared Statements MySQL merupakan sebuah fitur yang disediakan oleh MySQL (dan beberapa jenis aplikasi database lainnya). Dengan menggunakan Prepared Statements ini seorang programmer bisa mengirim query ke database server secara terpisah, maksudnya terpisah perintah query yang dikirim dengan “data” query. Sehingga hal tersebut akan membuat query yang dikirim ke database server jadi lebih aman dan cepat.

Alur Prepared Statement 

#1 Pertama
Sebagai gambaran saja, jika Anda melakukan query menggunakan mysqli_query(); maka query atau data yang dikirim akan dimasukan kedalam satu perintah didalam string, seperti berikut ini
$data=mysqli_query(“SELECT * FROM nama_tabel where id=1”)

Namun jika Anda menggunakan prepared statements, maka data yang dicari atau diinput akan diganti menggunakan “?” seperti contoh berikut :

“SELECT * FROM nama_tabel where id=?”

atau jika untuk input data

“INSERT INTO nama_tabel VALUES (?,?,?)”

Query diatas sebenarnya secara teknis juga dikirim langsung ke database server. Namun oleh MySQL perintah tersebut disimpan sementara waktu sampai ada proses yang disebut dengan “BIND”

#2 Kedua
BIND merupakan proses kedua setelah query dilakukan, dimana nantinya akan ada sebuah proses pengiriman data yang sebelumnya telah di tandai dalam sebuah proses prepare pada query yang menggunakan tanda ‘?’ . Data yang dikirim sesuai dengan proses prepare yang telah ditandai, jika misal hanya satu data yang dibutuhkan, maka yang dikirimnya pun satu data saja, jika dua data maka yang dikirimnya dua data, beitu seterusnya.

#3 Ketiga
Setelah melakukan proses prepare dan bind maka langkah selanjutnya adalah melakukan eksekusi menggunakan perintah execute()

Keuntungan Prepared Statements

Seperti yang sudah saya jelaskan sebelumnya bahwa penggunaan prepared statements ini tentu akan membuat query yang dikirim jadi lebih aman dan cepat. Karena seperti yang kita ketahui bahwasanya, request yang dilakukan dalam sebuah aplikasi berasal dari user, jika misal ada user yang sengaja melakukan penambahan kode query (SQL)  tertentu saat melakukan request ke database server maka tentu ini akan jadi bermasalah. Teknik biasanya dikenal sebagai teknik SQL Injection.

Karena dalam mysql prepared statements ini kita bisa memisahkan antara query dengan datanya maka tentu kita bisa terhindar dari penyisipan kode SQL tersebut.

Contoh Penggunaan MySQLi Prepared Statements


Disini Saya akan memeberikan contoh pengunaan MySQLi Prepared statements untuk menampilkan data dalam tabel hutangku. Teknik penulisan kode yang akan saya contohkan adalah menggunakan PHP MySQLi Procedural

<?php
//buat koneksi
$koneksi = new mysqli('localhost','root','','crudmysqli');
//cek koneksi
if(!$koneksi){
 die('Gagal melakukan koneksi'.mysqli_connect_errno($koneksi).'-'.mysqli_connect_error($koneksi));
}
//simpan query
$perintah=mysqli_prepare($koneksi,"SELECT * FROM hutangku where namahutang=?");

//jika gagal tampilkan error
if(!$perintah){
 die('Gagal melakukukan query='.mysqli_errno($koneksi).'-'.mysqli_error($koneksi));
}
$namahutang="Bensin";
//jalankan di param
mysqli_stmt_bind_param($perintah, "s", $namahutang);
//eksekusi perintah
mysqli_stmt_execute($perintah);
//tampilkan data
$result=mysqli_stmt_get_result($perintah);
while($row=mysqli_fetch_row($result)){
 echo "$row[0] $row[1] $row[2]";
}
//tutup statemen dan koneksi
mysqli_stmt_close($perintah);
mysqli_close($koneksi);
?>

Bila di eksekusi dijalankan di browser akan menampilkan data seperti berikut ini

prepared statements

Untuk penjelasan kode secara mendetailnya akan saya bahasa pada artikel Cara Menampilkan Data Menggunakan PHP MySQLi Prepared



1 Response to "Mencoba Prepared Statements MySQLi"

  1. Hanya bisa bantu share saya mah kang..

    ReplyDelete

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin

mahjong ways mengungkap rahasia visual simbol dan mekanisme permainan yang unikmengenal perubahan simbol mahjong ways dan pengaruhnya terhadap alur permainanarsitektur microservices menjadi strategi baru dalam membangun infrastruktur aplikasi skala besarevolusi game mahjong dari permainan tradisional hingga hiburan digital modernfitur free spin dan scatter mahjong ways mengenal peran simbol dalam permainantransformasi teknologi cloud membentuk ekosistem layanan digital yang lebih fleksibelteknologi observability membantu platform modern menjaga stabilitas dan kinerja layanansistem cascading mahjong ways mengapa animasi dan transisi simbol menarik perhatianmengapa game bertema mahjong semakin populer ini faktor visual dan inovasinyamahjong ways dan perjalanan simbol tradisional menembus era digital ketika warisan permainan klasik menemukan identitas baru di kalangan generasi mudamahjong pgsoft dan fenomena psikologi visual yang membuat pemain terus memperhatikan perubahan simbol serta animasi dalam setiap putaranintegrasi teknologi automated monitoring memperkuat pengawasan infrastruktur digital melalui analisis real timemahjong ways 2 menghadirkan mekanisme near miss yang menarik dikaji dari sisi psikologi mengapa momen hampir mendapatkan kombinasi terasa begitu membekasmahjong pgsoft dan perhitungan expected value membuka perspektif berbeda tentang potensi hadiah besar serta realitas matematika di balik permainanmekanisme database terdistribusi mendukung konsistensi informasi pada lingkungan komputasi skala besarpgsoft vs pragmatic play mahjong ways dan princess starlight memperlihatkan dua pendekatan berbeda dalam mengembangkan desain visual serta mekanisme permainan digitalmahjong ways 2 dan rahasia di balik mekanisme cascade yang mengubah susunan simbol secara berurutan menjadi salah satu daya tarik gameplay modernteknologi gpu acceleration mengoptimalkan kinerja rendering grafis melalui pemrosesan komputasi paralelmahjong dan fenomena permainan lama yang menemukan tempat di era hiburan serbacepatmengapa cara pemain menyimpan ubin mahjong bisa mencerminkan tradisi yang berbedaketika mahjong menjadi bagian dari cerita migrasi dan pertukaran budaya asiaperubahan bentuk meja mahjong dari perlengkapan sederhana hingga desain otomatismahjong dalam sorotan bagaimana kesalahan kecil dapat mengubah jalannya permainandi balik koleksi mahjong antik terdapat kisah bahan dan teknik pembuatan ubinmengapa mahjong memiliki peran menarik dalam pertemuan komunitas perantauanmahjong dan cara pemain membangun kebiasaan mengamati ubin yang telah dibuangketika arsip foto keluarga merekam perjalanan tradisi bermain mahjongmenelusuri perkembangan mahjong melalui perubahan aturan kompetisi internasional