Rumah > Soal Jawab > teks badan
P粉7225212042023-08-23 09:18:33
Bagi mereka yang menggunakan parameter bernama, berikut ialah cara menggunakan padanan separa dalam pangkalan data MySQLLIKE
进行%
:
WHERE column_name LIKE CONCAT('%', :dangerousstring, '%')
di mana parameter yang dinamakan adalah :dangerousstring
.
Dalam erti kata lain, anda menggunakan simbol %
unescaped yang jelas dalam pertanyaan anda, yang berasingan daripada input pengguna.
EDIT: Untuk Pangkalan Data Oracle, sintaks gabungan menggunakan operator gabungan: ||
, jadi ia akan memudahkan kepada:
WHERE column_name LIKE '%' || :dangerousstring || '%'
Namun, seperti yang disebut oleh @bobince di sini, terdapat beberapa kaveat:
Oleh itu, terdapat perkara lain yang perlu diberi perhatian apabila menggabungkan suka dan parameterisasi.
P粉7318612412023-08-23 00:34:09
Saya temui jawapan selepas menyiarkan:
$query = $database->prepare('SELECT * FROM table WHERE column LIKE ?'); $query->execute(array('value%')); while ($results = $query->fetch()) { echo $results['column']; }