Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menggunakan Pertanyaan Berparameter PDO dengan Pernyataan LIKE dengan Selamat?

Bagaimana untuk Menggunakan Pertanyaan Berparameter PDO dengan Pernyataan LIKE dengan Selamat?

Patricia Arquette
Patricia Arquetteasal
2024-12-20 18:51:14838semak imbas

How to Securely Use PDO Parameterized Queries with LIKE Statements?

Menggunakan Pertanyaan Berparameter PDO dengan Pernyataan LIKE

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.

Latar Belakang

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.

Percubaan Awal

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.

Penyelesaian Dioptimumkan

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.

Kesimpulan

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!

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