Dalam bekerja dengan pangkalan data, melaksanakan operasi carian dengan cekap dan selamat adalah yang terpenting. Satu pendekatan untuk meningkatkan ketepatan carian dan mencegah kelemahan suntikan SQL adalah dengan menggunakan pertanyaan berparameter. Artikel ini menangani senario khusus membina pernyataan LIKE menggunakan pertanyaan berparameter PDO.
Anda mungkin menghadapi situasi di mana anda perlu menanyakan data menggunakan pernyataan LIKE, yang membolehkan anda mencari untuk padanan separa berdasarkan corak yang ditentukan. Semasa membuat pertanyaan sedemikian, adalah penting untuk menggunakan pertanyaan berparameter untuk melindungi daripada serangan suntikan SQL.
Anda cuba membina pertanyaan LIKE berparameter seperti berikut:
$query = $database->prepare('SELECT * FROM table WHERE column LIKE "?%"'); $query->execute(array('value'));
Walau bagaimanapun, percubaan ini tidak akan menghasilkan hasil yang diharapkan kerana corak yang disediakan dalam pertanyaan disertakan dalam petikan berganda ("). PDO mentafsirkan petikan berganda sebagai sebahagian daripada corak, yang membawa kepada gelagat padanan yang salah.
Pendekatan yang betul melibatkan parameterkan pernyataan LIKE tanpa menyertakan corak dalam petikan berganda, seperti yang ditunjukkan di bawah :
$query = $database->prepare('SELECT * FROM table WHERE column LIKE ?'); $query->execute(array('value%'));
Dengan meninggalkan petikan berganda, pemegang tempat (?) dianggap pembolehubah dan nilai yang disediakan ('value%') dilampirkan dengan betul sebagai corak untuk pemadanan Ini memastikan gelagat carian LIKE yang tepat dan mengekalkan keselamatan dengan menghalang input berniat jahat daripada menjejaskan pelaksanaan pertanyaan.
Membina pertanyaan LIKE berparameter. dalam PDO ialah aspek penting dalam manipulasi pangkalan data untuk mendapatkan semula data yang cekap dan selamat. Artikel ini membimbing anda melalui kedua-dua percubaan awal dan penyelesaian yang dioptimumkan, menyerlahkan kepentingan parameterisasi yang betul apabila bekerja dengan pernyataan LIKE dalam PHP.
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Pertanyaan Berparameter PDO dengan Pernyataan LIKE dengan Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!