2015-09-02 135 views
0

我需要从MyISAM迁移到InnoDB。在这个过程中我发现,应用程序现在返回一些搜索错误:如何迁移MySQL全文搜索从MyISAM到InnoDB

1064语法错误,意外“)”,预计$结束

是否有我有逃避任何显著的变化或字符? 80%的搜索工作正常。

字符 - 和)和@不再工作

例如,

SELECT MATCH (anchor) AGAINST ('te--st' IN BOOLEAN MODE) score 
FROM seo_content_links 

SELECT MATCH (anchor) AGAINST ('te)st' IN BOOLEAN MODE) score 
FROM seo_content_links 

SELECT MATCH (anchor) AGAINST ('[email protected]' IN BOOLEAN MODE) score 
FROM seo_content_links 

这非常像MySQL中的错误。

+0

你能提供与使用实际的查询... – BK435

+0

确定周围没有空格'--'? '--'是“这里有一个行尾注释”标记。 –

+0

是的。这是常规的文字输入。如果这种行为发生了变化,我需要逃避。该应用程序正在使用myisam表全文搜索mysql 5.5。 – merlin

回答

0

我怀疑这是MySQL 5.6.x中的一个错误。

一个可能的解决方案是有问题更换字符:

$text = addslashes(str_replace(array("--", "@", ")", "(", "-"), " ", $text));