Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Membuat Kenyataan Disediakan MySQL dalam PHP Menggunakan Parameter URL dengan Selamat?

Bagaimanakah Saya Boleh Membuat Kenyataan Disediakan MySQL dalam PHP Menggunakan Parameter URL dengan Selamat?

Patricia Arquette
Patricia Arquetteasal
2024-12-14 00:50:17671semak imbas

How Can I Securely Create MySQL Prepared Statements in PHP Using URL Parameters?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn