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
Lepaskan: 2024-12-05 21:30:12
asal
736 orang telah melayarinya

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 = [''];
Salin selepas log masuk
  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}%";
}
Salin selepas log masuk
  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);
}
Salin selepas log masuk

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 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan