我的代碼是這樣的,數據庫搜索問題PHP
$query = "SELECT * FROM `cars` WHERE (color LIKE '%". $key ."%' OR name LIKE '%". $key ."%') AND enabled = 'yes' ORDER BY `ID`";
數據庫是這樣
ID color name enabled
---- ------ -------- ---------
1 red red car yes
2 blue blue car yes
3 brown brown car yes
R當我用鑰匙 「紅」,它返回第一個字段搜索
(ID 1),但如果我搜索「紅色汽車」它什麼都不返回。
我該如何搜索2字段?
感謝
編輯:固定支架,但仍我不能得到超過1個字鍵的結果。
沒有運氣
$query = "SELECT * FROM `cars` WHERE (MATCH (color,name) AGAINST ('$key' IN BOOLEAN MODE)) AND enabled = 'yes' ORDER BY `ID`";
EDIT 2試過這樣:彼得是正確的。查詢中沒有問題。奇怪的是 我用這個
$key = $_GET['key'];
如果$ _GET [「關鍵」]超過1個字,$關鍵是返回空的一個原因。
不用說,你應該小心SQL注入。 – Joe 2009-12-15 16:19:36
我不認爲這是原因,但是你確實應該在你的WHERE標準中放置圓括號。您的AND和OR的解決順序可能不是您所期望的。 – 2009-12-15 16:19:56