2015-09-02 64 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));