2012-05-19 88 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

相关问题