Postingan lainnya
Apa itu bind_param()?
Permisi gan mau nanya dong
di mysqli itu ada yg namanya bind_param(), bind_param() itu apa yaa? dan kenapa setiap kali melihat dari beberapa website banyak sekali query bind_param() seperti ini
$SQL -> bind_param("sssss",$id,$nim,$nama,$alamat,$jurusan);
dan yg mau saya tanya adalah, yg dimaksud dengan "sssss" nya itu apa yaa?
4 Jawaban:
Kalo gak salah sepertinya itu digunakan untuk menghindari dari serangan sql injection gan
Namanya prepare statement Koreksi jika saya salah
Itu buat tipe data nya. Sama buat ngisi value yg dikasih tanda '????' S = String D = Digit I = Integer
$int1 = 42;
$int2 = 11;
$str = 'foo';
$stmt->bind_param('iis', $int1, $int2, $str);
$SQL -> bind_param("sssss",$id,$nim,$nama,$alamat,$jurusan);
Itu maksudnya tipe data tiap parameter. Contoh : Itu "s" semua berarti parameter $id, $nim, $nama, $alamat, $jurusan itu dinilai sebagai string. Misal parameter $id adalah integer maka akan seperti ini : "issss"
bind_param biasanya di pakai bersama "prepare" untuk mengikat variable yang di kirim ke server dalam keadaan kosong misal
(nama, nomorHP, email) VALUES (?, ?, ?)
database meng-kompile dan menyimpan hasil dari nama, nomorHP, dan email walau tak ada isi dan belum di printah untuk di eksekusi (mungkin seperti server meyediakan template kosong untuk data yang akan masuk setelah printah execute()
sebelum di eksekusi parameternya harus di ikat dahulu
bind_param("sis", $nama, $nomorHP, $email);
oleh karena server sudah ada template maka kita bisa panggil parameter nya berulang-ulang dan dapat di eksekusi berulang-ulang pula, performa nya cepat
$nama = "Abdul";
$nomorHP = 123456778
$email ="abdul@website.com"
$stmt->execute();
$nama = "Tomi";
$nomorHP = 8765432
$email ="tomi@website.com"
$stmt->execute();