首頁  >  問答  >  主體

使用PDO參數化查詢來建立帶有LIKE語句的方法

<p>這是我嘗試的程式碼:</p>
$query = $database->prepare('SELECT * FROM table WHERE column LIKE "?%"');

$query->execute(array('value'));

while ($results = $query->fetch())
{
    回顯$結果['列'];
}</pre></p>
P粉394812277P粉394812277397 天前541

全部回覆(2)我來回復

  • P粉722521204

    P粉7225212042023-08-23 09:18:33

    對於使用命名參數的用戶,以下是如何在MySQL資料庫中使用LIKE進行%部分匹配的方法:

    WHERE column_name LIKE CONCAT('%', :dangerousstring, '%')

    其中命名參數為:dangerousstring

    換句話說,您在自己的查詢中使用明確的非轉義%符號,這些符號與使用者輸入分開。

    編輯:對於Oracle資料庫,連接語法使用連接運算子:||,所以它將簡化為:

    WHERE column_name LIKE '%' || :dangerousstring || '%'

    然而,正如@bobince在這裡所提到的,還有一些注意事項:

    因此,在結合like和參數化時還需要注意其他事項。

    回覆
    0
  • P粉731861241

    P粉7318612412023-08-23 00:34:09

    發布後就找到答案了:

    $query = $database->prepare('SELECT * FROM table WHERE column LIKE ?');
    $query->execute(array('value%'));
    
    while ($results = $query->fetch())
    {
        echo $results['column'];
    }

    回覆
    0
  • 取消回覆