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
Lepaskan: 2024-12-14 00:50:17
asal
668 orang telah melayarinya

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");
Salin selepas log masuk

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);
Salin selepas log masuk

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();
Salin selepas log masuk

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";
}
Salin selepas log masuk

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);
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan