Gunakan pertanyaan berparameter PDO untuk mencipta kaedah dengan penyataan LIKE
P粉394812277
P粉394812277 2023-08-22 12:33:39
0
2
580
<p>这是我尝试的代码:</p> <pre class="brush:php;toolbar:false;">$query = $database->prepare('SELECT * FROM table WHERE column LIKE "?%"'); $query->execute(array('value')); manakala ($hasil = $query->fetch()) { echo $results['column']; }</pre></p>
P粉394812277
P粉394812277

membalas semua(2)
P粉722521204

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粉731861241

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'];
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!