2011-07-06 745 views
1

我試圖通過搜索關鍵字查詢數據庫表。我的SQL如下:MySQL查詢:搜索關鍵字like%

SELECT * FROM some_table WHERE some_name LIKE '%$keyword%' 

其中$關鍵字是來自PHP表單POST數據。 $關鍵字已經被real_escape_string函數處理。我注意到它的$關鍵字是,所有記錄都被選中。如何在內容中搜索與some_name字段?

回答

5

你要逃避字面%,如manual解釋說:

SELECT * FROM some_table WHERE some_name LIKE '%\%%'; 

編輯:另外請注意,您應該逃避_字符以同樣的方式,因爲這是一個單字符符號通配符。

+0

但爲什麼real_escape_string不離開%給我嗎? – Raptor

+2

因爲real_escape_string現在已知道您在LIKE語句中使用該字符串。它只是逃避標準的SQL安全。 – Flimzy

1

你應該逃避%\%在關鍵字