Mencipta Secure MySQL Prepared Statements dalam PHP
Penyata yang disediakan menawarkan peningkatan keselamatan dan potensi peningkatan prestasi untuk pertanyaan pangkalan data. Berikut ialah panduan komprehensif untuk mencipta pernyataan selamat MySQL disediakan dalam PHP menggunakan input daripada parameter URL.
Mencipta Penyata Disediakan
Segera sambungan MySQLi dan sediakan pernyataan menggunakan mysqli_prepare( ):
$db = new mysqli("host","user","pw","database"); $stmt = $db->prepare("SELECT * FROM mytable where userid=? AND category=? ORDER BY id DESC");
Mengikat Parameter
Gunakan mysqli_stmt_bind_param() untuk mengikat nilai parameter input pada pemegang tempat pernyataan:
$userid = intval($_GET['userid']); $category = intval($_GET['category']); $stmt->bind_param('ii', $userid, $category);
Melaksanakan dan Mengambil Data
Laksanakan penyataan yang disediakan dan dapatkan semula keputusan menggunakan mysqli_stmt_execute() dan mysqli_stmt_store_result():
$stmt->execute(); $stmt->store_result();
Gunakan mysqli_stmt_bind_result() untuk mengikat nama lajur kepada pembolehubah dan mengulangi keputusan:
$stmt->bind_result($column1, $column2, $column3); while ($stmt->fetch()) { echo "col1=$column1, col2=$column2, col3=$column3 \n"; }
Ensibiliti Asasitif untuk> Tatasusunan
Untuk pertanyaan yang mengembalikan berbilang lajur (cth., SELECT *), anda boleh menggunakan fungsi stmt_bind_assoc() untuk mengikat keputusan kepada tatasusunan bersekutu:$resultrow = array(); stmt_bind_assoc($stmt, $resultrow); while ($stmt->fetch()) { print_r($resultrow); }
Peningkatan Prestasi
Semasa menggunakan disediakan penyata boleh meningkatkan prestasi untuk berbilang pelaksanaan pertanyaan yang sama, overhed untuk mencipta dan menyediakan pernyataan mungkin tidak membenarkan penggunaannya untuk tiga atau empat pelaksanaan sahaja.Dengan mengikuti langkah ini, anda boleh memastikan bahawa pertanyaan MySQL anda adalah selamat dan cekap.Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membuat Kenyataan Disediakan MySQL dalam PHP Menggunakan Parameter URL dengan Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!