CakePHP HTML qoute编码问题
我正在研究CakePHP1.3。我发现字符编码有问题。我有两个模型关键字和组,这样关键字就属于组。我要做的是在model关键字中执行全文查询CakePHP HTML qoute编码问题,php,mysql,cakephp,Php,Mysql,Cakephp,我正在研究CakePHP1.3。我发现字符编码有问题。我有两个模型关键字和组,这样关键字就属于组。我要做的是在model关键字中执行全文查询 function geParentKeyword($keyword) { //$keyword = *Acupuncturist*; Assuming this as input $match = html_entity_decode("MATCH(Keyword.keyword) AGAINST (\"".trim($keyword)."\
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\u entity\u decode和str\u replace(),但它们显示相同的查询
更多细节
Core.php
Configure::write('App.encoding', 'UTF-8');
var $default = array(
….
'encoding' => 'UTF8',
);
Database.php
Configure::write('App.encoding', 'UTF-8');
var $default = array(
….
'encoding' => 'UTF8',
);
预期结果
MATCH(Keyword.keyword) AGAINST (' *Acupuncturist* ' IN BOOLEAN MODE)
请告诉我是什么问题。提前谢谢。试试看
$match = 'MATCH(Keyword.keyword) AGAINST (\''. html_entity_decode(trim($keyword)) .'\' IN BOOLEAN MODE)';
你试过这个吗
$match = "MATCH(Keyword.keyword) AGAINST ('".trim($keyword)."' IN BOOLEAN MODE)";
我自己解决这个问题 这是由于调试模式,我禁用调试模式。它只工作
Configure::write('debug', 0);
调用
getParentKeyword
后,$keyword
是什么样子的?直接在函数头后打印出来……它显示针灸师valid@MoyedAnsari我想重复我的问题:$keyword
调用getParentKeyword
后是什么样子的?直接在函数h之后打印出来ead…否决了这个,因为这不会修复它。它会隐藏错误条件。调试模式与字符编码无关…它隐藏了症状。原因仍然存在。它会回来咬你…@RichardAtHome同意这不是解决方案,我使用的是cakephp 1.3