簡體   English   中英

在MySql數據庫中搜索類似於父親節的字符串

[英]Search string like Father\'s Day in MySql Database

我有一個包含字符串“父親節”的列如果僅搜索單詞“父親”查詢,則顯示結果“父親節”,但如果輸入字符串“父親節”,則為父親節

沒有結果顯示

我的查詢是

select * from temp where title like '%Father's%' datatype = 0

select * from temp where title like '%Father''s%' datatype = 0

select * from temp where title like '%Father\'s%' datatype = 0

使用mysql_real_escape_string轉義特殊字符,

$search = mysql_real_escape_string($search);

使用PDO方式:

$stmt = $db->prepare("SELECT * FROM  `temp` WHERE  `title` LIKE ?");
$stmt->bindValue(1, "%$search%", PDO::PARAM_STR);
$stmt->execute()

注意: 請不要在新代碼中使用mysql_*函數 它們不再維護,已正式棄用 看到紅色框了嗎? 而是了解准備好的語句 ,並使用PDOMySQLi- 本文將幫助您確定哪一個。 如果您選擇PDO, 這是一個很好的教程

您的查詢

  1. 您在父親之后關閉報價並中斷查詢
  2. 同一期
  3. 您無法在LIKE模式內轉義' (僅%_被轉義)

我相信,但我沒有檢查,正確的查詢應該是:

select * from temp where title like "%Father's%" AND datatype = 0

使用這個可以正常工作:

select * from temp where title like "%Father\\'s%" datatype = 0;

這將起作用。

據您所知,我想建議您,無論何時將其插入數據庫, 都應始終使用stripslashes函數來避免斜杠。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM