Rumah  >  Soal Jawab  >  teks badan

Gunakan pertanyaan berparameter PDO untuk mencipta kaedah dengan penyataan LIKE

<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粉394812277P粉394812277447 hari yang lalu583

membalas semua(2)saya akan balas

  • P粉722521204

    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.

    balas
    0
  • P粉731861241

    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'];
    }

    balas
    0
  • Batalbalas