Mencoba Prepared Statements Mysqli
Prepared Statemenst ini ialah 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 metode ini juga sangat umum dipakai 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 ialah sebuah fitur yang disediakan oleh MySQL (dan beberapa jenis aplikasi database lainnya). melaluiataubersamaini memakai Prepared Statements ini seorang programmer sanggup 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 kondusif dan cepat.
Alur Prepared Statement
#1 Pertama
Sebagai citra saja, bila Anda melaksanakan query memakai mysqli_query(); maka query atau data yang dikirim akan dimasukan kedalam satu perintah didalam string, menyerupai diberikut ini
$data=mysqli_query(“SELECT * FROM nama_tabel where id=1”)
Namun bila Anda memakai prepared statements, maka data yang dicari atau diinput akan diganti memakai “?” menyerupai teladan diberikut :
“SELECT * FROM nama_tabel where id=?”
atau bila untuk input data
“INSERT INTO nama_tabel VALUES (?,?,?)”
Query diatas sebenarnya secara teknis juga dikirim eksklusif ke database server. Namun oleh MySQL perintah tersebut disimpan sementara waktu hingga ada proses yang disebut dengan “BIND”
#2 Kedua
BIND ialah proses kedua sehabis query dilakukan, dimana nantinya akan ada sebuah proses pengiriman data yang sebelumnya sudah di tandai dalam sebuah proses prepare pada query yang memakai tanda ‘?’ . Data yang dikirim sesuai dengan proses prepare yang sudah ditandai, bila misal spesialuntuk satu data yang dibutuhkan, maka yang dikirimnya pun satu data saja, bila dua data maka yang dikirimnya dua data, beitu seterusnya.
#3 Ketiga
Sesudah melaksanakan proses prepare dan bind maka langkah selanjutnya ialah melaksanakan sanksi memakai perintah execute()
Keuntungan Prepared Statements
Seperti yang sudah saya jelaskan sebelumnya bahwa penerapan prepared statements ini tentu akan membuat query yang dikirim jadi lebih kondusif dan cepat. Karena menyerupai yang kita ketahui bahwasanya, request yang dilakukan dalam sebuah aplikasi berasal dari user, bila misal ada user yang sengaja melaksanakan penambahan isyarat query (SQL) tertentu dikala melaksanakan request ke database server maka tentu ini akan jadi bermasalah. Teknik biasanya dikenal sebagai metode SQL Injection.
Karena dalam mysql prepared statements ini kita sanggup memisahkan antara query dengan datanya maka tentu kita sanggup terhindar dari penyisipan isyarat SQL tersebut.
misal Penggunaan MySQLi Prepared Statements
Disini Saya akan memediberikan teladan pengunaan MySQLi Prepared statements untuk menampilkan data dalam tabel pinjamanku. Teknik penulisan isyarat yang akan saya contohkan ialah memakai PHP MySQLi Procedural
<?php //buat koneksi $koneksi = new mysqli('localhost','root','','crudmysqli'); //cek koneksi if(!$koneksi){ die('Gagal melaksanakan koneksi'.mysqli_connect_errno($koneksi).'-'.mysqli_connect_error($koneksi)); } //simpan query $perintah=mysqli_prepare($koneksi,"SELECT * FROM pinjamanku where namapinjaman=?"); //jika gagal tampilkan error if(!$perintah){ die('Gagal melakukukan query='.mysqli_errno($koneksi).'-'.mysqli_error($koneksi)); } $namapinjaman="Bensin"; //jalankan di param mysqli_stmt_bind_param($perintah, "s", $namapinjaman); //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 sanksi dijalankan di browser akan menampilkan data menyerupai diberikut ini
Untuk klarifikasi isyarat secara mendetailnya akan saya bahasa pada artikel Teknik Menampilkan Data Menggunakan PHP MySQLi Prepared
Post a Comment for "Mencoba Prepared Statements Mysqli"