我正在开发 cakephp 1.3。我在字符编码中发现问题。我有两个模型Keyword和Group,这样 Keyword 属于 Group。我要做的是在模型关键字中执行全文查询。
function geParentKeyword($keyword) {
//$keyword = *Acupuncturist*; Assuming this as input
$match = html_entity_decode("MATCH(Keyword.keyword) AGAINST (\"".trim($keyword)."\" IN BOOLEAN MODE)" );
return $this->find('first', array('fields' =>array('Group.name'), 'conditions' =>array($match) ));
}
这个查询我得到了错误的结果。我调试了查询,我得到了这个
SELECT `Group`.`name`
FROM `keywords` AS `Keyword`
LEFT JOIN `groups` AS `Group` ON (`Keyword`.`group_id` = `Group`.`id`)
WHERE MATCH(`Keyword`.`keyword`) AGAINST ("*Acupuncturist*" IN BOOLEAN MODE)
LIMIT 1"
该查询是完美的,但这里的问题是 $match cake 将双引号转换为"
我尝试使用 html_entity_decode 和 str_replace() 但它们显示相同的查询。
更多细节。
核心.php
Configure::write('App.encoding', 'UTF-8');
数据库.php
var $default = array(
….
'encoding' => 'UTF8',
);
预期结果
MATCH(Keyword.keyword) AGAINST (' *Acupuncturist* ' IN BOOLEAN MODE)
请指导我是什么问题。提前致谢。