Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana Saya Boleh Selamatkan Pertanyaan MySQL dalam PHP Menggunakan Penyata Disediakan?

Bagaimana Saya Boleh Selamatkan Pertanyaan MySQL dalam PHP Menggunakan Penyata Disediakan?

Barbara Streisand
Barbara Streisandasal
2024-12-17 00:14:23912semak imbas

How Can I Secure MySQL Queries in PHP Using Prepared Statements?

Secure MySQL Prepared Statements dalam PHP

Pernyataan yang disediakan meningkatkan keselamatan pertanyaan pangkalan data dengan menghalang serangan suntikan SQL. Mereka menggantikan nilai yang dibekalkan pengguna sebagai parameter pengikatan, memastikan tiada kod hasad dilaksanakan secara langsung.

Untuk mencipta kenyataan yang disediakan dengan selamat, ikut langkah berikut:

  1. Tubuhkan Sambungan Pangkalan Data: Gunakan mysqli_connect() untuk menyambung ke pangkalan data.
  2. Sediakan Pertanyaan: Buat pernyataan yang disediakan dengan menggunakan mysqli_prepare(). Sediakan pertanyaan dengan ruang letak untuk nilai yang dibekalkan pengguna.
  3. Parameter Ikat: Panggil mysqli_stmt_bind_param() untuk menentukan jenis data parameter ikatan dan ikat nilai sebenar kepada pemegang tempat.
  4. Lakukan Pertanyaan: Laksanakan pernyataan yang disediakan menggunakan mysqli_stmt_execute().
  5. Dapatkan Keputusan: Proseskan hasil yang diambil mengikut keperluan.

Berikut ialah contoh:

$stmt = $mysqli->prepare("SELECT * FROM mytable WHERE userid=? AND category=? ORDER BY id DESC");
$stmt->bind_param('ii', intval($_GET['userid']), intval($_GET['category']));
$stmt->execute();

$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    // Process the result row
}

$stmt->close();

BONUS: Kelajuan Pengoptimuman

Walaupun kenyataan yang disediakan biasanya meningkatkan kelajuan, bilangan kali ia digunakan pada halaman tidak menjejaskan pengoptimuman kelajuan keseluruhan dengan ketara. Kesediaan adalah terutamanya untuk keselamatan, bukan prestasi.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Selamatkan Pertanyaan MySQL dalam PHP Menggunakan Penyata Disediakan?. 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