Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Membina Pertanyaan Suka Dinamik dengan Selamat dengan Penyata Disediakan MySQLi?

Bagaimana untuk Membina Pertanyaan Suka Dinamik dengan Selamat dengan Penyata Disediakan MySQLi?

DDD
DDDasal
2024-12-05 21:30:12700semak imbas

How to Securely Build Dynamic LIKE Queries with MySQLi Prepared Statements?

Menggunakan Penyata Disediakan dengan Keadaan LIKE Dinamik

Untuk membina pertanyaan SELECT dengan bilangan keadaan LIKE yang dinamik menggunakan pernyataan yang disediakan MySQLi, ia adalah penting untuk membungkus tanda peratusan (%) di sekeliling parameter, bukan pemegang tempat.

Berikut ialah panduan langkah demi langkah untuk melaksanakan ini dalam PHP:

  1. Ekstrak dan Sediakan Ungkapan dan Jenis Data:
    Asingkan input pengguna ke dalam istilah carian individu menggunakan explode(). Mulakan tatasusunan untuk menyimpan ungkapan klausa WHERE ($keadaan) dan gabungan jenis data dan nilai ($parameter).
$conditions = [];
$parameters = [''];
  1. Bina Ungkapan dan Parameter:
    Lelar pada istilah carian, mencipta satu siri ungkapan SUKA dan menambah jenis data yang sepadan pada $parameters.
foreach ($search_exploded as $value) {
    $conditions[] = "name LIKE ?";
    $parameters[0] .= 's';
    $parameters[] = "%{$value}%";
}
  1. Sediakan dan Laksanakan Pertanyaan:
    Sambungkan $syarat ke dalam klausa WHERE. Sediakan penyataan dengan pertanyaan, ikat $parameter menggunakan operator percikan (...), dan laksanakannya.
$query = "SELECT * FROM info";
if ($conditions) {
    $stmt = $mysqli->prepare($query . ' WHERE ' . implode(' OR ', $conditions));
    $stmt->bind_param(...$parameters);
    $stmt->execute();
    $result = $stmt->get_result();
} else {
    $result = $conn->query($query);
}

Dengan mengikut langkah ini, anda boleh melaksanakan pertanyaan dengan dinamik dengan berkesan bilangan syarat SUKA menggunakan pernyataan yang disediakan MySQLi, memastikan fleksibiliti dan keselamatan.

Atas ialah kandungan terperinci Bagaimana untuk Membina Pertanyaan Suka Dinamik dengan Selamat dengan Penyata Disediakan MySQLi?. 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