Php 全文搜索在mysql 5.5中不起作用

Php 全文搜索在mysql 5.5中不起作用,php,mysql,full-text-search,Php,Mysql,Full Text Search,下面的代码在MySQL 5.0.24a中工作,但在MySQL 5.5中不再工作 $q是UTF8字符 SELECT *,MATCH(p.name,p.keywords) AGAINST('$q') AS pscore FROM products as p WHERE MATCH(p.name,p.keywords) AGAINST('$q') ORDER BY pscore DESC 由于MySQL 5.5(确切地说是5.5.5),InnoDB是默认的存储引擎,任何没有指定存储引擎的表,如

下面的代码在MySQL 5.0.24a中工作,但在MySQL 5.5中不再工作

$q
是UTF8字符

SELECT *,MATCH(p.name,p.keywords) AGAINST('$q') AS pscore 
FROM products as p 
WHERE MATCH(p.name,p.keywords) AGAINST('$q') ORDER BY pscore DESC 
由于MySQL 5.5(确切地说是5.5.5),InnoDB是默认的存储引擎,任何没有指定存储引擎的表,如engine=MyISAM,都会自动创建为InnoDB,这会造成很多麻烦:(


我怀疑这是您的问题,因为许多生产站点都遇到过这个问题!

问题是什么?您没有得到结果吗?错误消息?db模式?表是否正确索引?我假设$q是一个php变量:-)
名称
关键字
列的字符集是什么?此外,您似乎正在“自然语言模式”中使用全文搜索,默认情况下,该模式将忽略任何短于四个字符的单词。因此,从理论上讲,如果$q是单个字符,那么您的查询一开始就不应该工作。(编辑:除非我误读了文档,并且最小长度仅适用于索引列,而不适用于查询。)
$q
是一个。