Gunakan Parameter Terikat Berbilang Kali
Dalam pengaturcaraan pangkalan data, menggunakan parameter terikat adalah penting untuk mencegah serangan suntikan SQL. Walau bagaimanapun, pembangun sering menghadapi masalah apabila cuba menggunakan parameter yang sama beberapa kali dalam pernyataan yang disediakan.
Pernyataan Masalah Asal
Siaran asal membincangkan senario di mana pengguna ingin melaksanakan enjin carian yang menggunakan UNION SELECT untuk mengambil data daripada jadual yang berbeza, setiap satu dengan kriteria carian yang berbeza. Pertanyaan mengandungi beberapa kejadian parameter ":term", yang terikat pada pernyataan yang disediakan.
Penyelesaian: Pembolehubah Ditakrifkan Pengguna
Penyelesaian yang disediakan menawarkan pendekatan alternatif untuk menggunakan parameter terikat beberapa kali. Dengan menggunakan Pembolehubah Ditakrifkan Pengguna MySQL, pembangun boleh memudahkan kod mereka dan meningkatkan kebolehbacaan:
Kod Contoh
$sql = "SET @term = :term"; $stmt = $dbh->prepare($sql); $stmt->bindValue(":term", "%$term%", PDO::PARAM_STR); $stmt->execute(); $sql = "SELECT ... FROM table WHERE name LIKE @term OR number LIKE @term"; $stmt = $dbh->prepare($sql); $stmt->execute(); $stmt->fetchAll();
Kelebihan
Keburukan
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Semula Parameter Terikat Berbilang Kali dalam Penyata yang Disediakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!