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

Silahkan untuk meninggalkan komentar, santai saja dan mulailah berkomentar...

nagabet76slot gacorslot online1213141516Slot Online Menghadirkan Pengalaman Digital Yang Didukung Pemrosesan Data Secara Real TimeMahjongways Menganalisis Pola Visual Dan Dinamika Simbol Berdasarkan Pemrosesan Data DigitalMahjongways Mengembangkan Dinamika Permainan Melalui Pengelolaan Data Dan Elemen Visual TerintegrasiAnalisis Komputasi Modern Membantu Memetakan Dinamika Sistem Digital Berdasarkan Data ObservasiMember Baru Mendorong Dinamika Komunitas Digital Menuju Pengalaman Yang Lebih Aktif Dan Menarikslot onlinemahjongwayasarsitektur layananpemrosesan data adaptifmember baruSlot Online Terbaru Menghadirkan AnalisisScatter Hitam Dianalisis Melalui PemetaanPola Scatter Hitam Membentuk Distribusi Visual Yang Dapat Dikaji Menggunakan Komputasi AdaptifArsitektur Teknologi TerdistribusiTeknologi Visualisasi DataMahjongways Mengembangkan Interaksi Visual Melalui Integrasi Simbol Digital Yang DinamisAnalisis Mahjongways Memetakan Dinamika Visual Dan Respons Antarmuka Berbasis DataScatter Hitam Dianalisis Melalui Pemetaan Struktur Simbol Digital Berbasis Komputasi AdaptifAlgoritma Scatter Hitam Membantu Mengidentifikasi Dinamika Pola Melalui Analisis Data ObservasiPg Soft Mengembangkan Sistem Rendering Adaptif Untuk Mendukung Visualisasi Digital ModernTeknologi Pg Soft Mengoptimalkan Pemrosesan Grafis Melalui Arsitektur Rendering TerintegrasiTeknologi Pemodelan Data Membantu Menganalisis Dinamika Informasi Pada Ekosistem Digital ModernArsitektur Komputasi Terdistribusi Meningkatkan Keandalan Pengelolaan Data Pada Platform DigitalTeknologi Kecerdasan Komputasional Mendorong Pengembangan Sistem Digital Yang Lebih AdaptifPemrosesan Data Modern Membantu Memetakan Pola Informasi Melalui Pendekatan Komputasi TerukurTeknologi Integrasi Data Mempermudah Sinkronisasi Informasi Dalam Lingkungan Digital TerpaduVisualisasi Komputasi Modern Membantu Menginterpretasikan Perubahan Pola Pada Sistem Digital KompleksTeknologi Otomasi Data Meningkatkan Efisiensi Pengelolaan Informasi Pada Infrastruktur DigitalModel Komputasi Adaptif Mendukung Pengembangan Teknologi Digital Melalui Analisis Data BerkelanjutanPengembangan Pg Soft Mengintegrasikan Teknologi Rendering Dengan Interaksi Visual Yang ResponsifPg Soft Menerapkan Komputasi Visual Untuk Meningkatkan Efisiensi Pengolahan Elemen DigitalEksplorasi Scatter Hitam Memetakan Distribusi Simbol Melalui Model Analitik Digital TerintegrasiPola Scatter Hitam Dikaji Menggunakan Pendekatan Visualisasi Data Dan Pemodelan StatistikMahjongways Menghadirkan Pendekatan Visual Interaktif Melalui Pemrosesan Simbol Yang AdaptifEksplorasi Mahjongways Mengungkap Perubahan Pola Visual Dalam Lingkungan Digital Terintegrasikasino online dan perubahan cara pengguna menilai keamanan platform digitalmengapa promosi kasino online sering memengaruhi harapan pengguna baruketika tampilan mewah kasino online membentuk kesan kepercayaan penggunapengaruh cerita kemenangan orang lain terhadap minat mengakses kasino onlinekasino online dalam fenomena perubahan pola konsumsi hiburan masyarakatbagaimana kasino online memanfaatkan desain interaktif untuk menarik perhatianalasan sebagian pengguna kasino online lebih mengingat bonus daripada risikoketika kemudahan transaksi mengubah kebiasaan pengguna kasino onlinekasino online dan tantangan menjaga kesadaran finansial di era serbadigitalmengapa ulasan pengguna dapat membentuk persepsi terhadap kasino onlinemahjong online dan perubahan cara generasi digital mengenal permainan klasikmengapa mahjong online menarik perhatian komunitas pecinta permainan strategiketika animasi modern memberikan identitas baru pada mahjong onlineperan fitur multiplayer dalam membangun interaksi pemain mahjong onlinemahjong online membawa warisan permainan asia ke dalam ekosistem digitalbagaimana mahjong online mengadaptasi simbol tradisional menjadi desain modernpengaruh tampilan antarmuka terhadap kenyamanan pengguna mahjong onlinemahjong online dan fenomena berkembangnya komunitas permainan lintas generasimengapa variasi aturan mahjong online menjadi topik menarik bagi pemain baruperjalanan mahjong online dari hiburan berbasis browser menuju platform mobile