$query = $database->prepare('SELECT * FROM table WHERE column LIKE "?%"'); $query->execute(array('value')); while ($results = $query->fetch()) { 回顯$結果['列']; }</pre></p>
P粉7225212042023-08-23 09:18:33
對於使用命名參數的用戶,以下是如何在MySQL資料庫中使用LIKE
進行%
部分匹配的方法:
WHERE column_name LIKE CONCAT('%', :dangerousstring, '%')
其中命名參數為:dangerousstring
。
換句話說,您在自己的查詢中使用明確的非轉義%
符號,這些符號與使用者輸入分開。
編輯:對於Oracle資料庫,連接語法使用連接運算子:||
,所以它將簡化為:
WHERE column_name LIKE '%' || :dangerousstring || '%'
然而,正如@bobince在這裡所提到的,還有一些注意事項:
因此,在結合like和參數化時還需要注意其他事項。
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']; }