2012-05-19 87 views
0

Possible Duplicate:
Warning: mysql_fetch_* expects parameter 1 to be resource, boolean given errorMySQL的布爾全文搜索不返回任何結果

我想寫MySQL中的全文搜索查詢和我遇到了一些麻煩。

我的數據庫中的示例關鍵字單元格包含一串字符串(例如:「袋塞動物玩具蘋果」)。我100%肯定'玩具'是我的一個項目在數據庫中的關鍵字之一。爲什麼下面的搜索查詢不會返回任何結果?

這是我嘗試使用查詢:

$results = mysql_query("SELECT keywords,name FROM files WHERE 
         MATCH (keywords) AGAINST ('+toys') IN BOOLEAN MODE"); 

我收到以下錯誤:

Warning: mysql_fetch_array() expects parameter 1 to be 
resource, boolean given in C:\xampp\...etc...\ on line 192 
+0

爲什麼你不使用like語句? '從myTable中選擇*,其中字段'%word%'' –

+0

@fahim:因爲'like'%...%''查詢不能使用索引,並且在大型表上顯得很慢。 –

回答

1

您的查詢失敗並返回一個布爾值false,您正在使用盲目的獲取呼叫。這意味着您在查詢邏輯中沒有錯誤處理。將您的查詢呼叫更改爲

$results = mysql_query('SELECT yada yada yada') or die(mysql_error()); 
               ^^^^^^^^^^^^^^^^^^^^^^ 

因此您可以準確查看查詢的問題。

永不假定數據庫操作成功。即使你的SQL語法是完全有效的,還有很多其他的原因使得不能檢查。

+0

感謝您的回覆。根據您的建議修改我的代碼後,這是返回的錯誤:使用的表類型不支持FULLTEXT索引... – AnchovyLegend

+0

您可能正在使用innodb表,它只能在v5.5某處獲得全文支持,或者5.6(不記得確切的版本)。 –

+0

必須先添加全文索引,然後才能執行全文搜索。 – Ami

相關問題