$select->where('MATCH(text,phone,phone2,email,email2,www,gadi,augums,skype) AGAINST(?)',$searching_string);
$select->order('MATCH(text,phone,phone2,email,email2,www,gadi,augums,skype) AGAINST(?) DESC',$searching);
获取错误:
消息:SQLSTATE [HY093]:参数号无效:没有绑定参数
问题似乎与$ select-> order。
一致这与结果相关。如何在Zend Framework中查看?
搜索似乎有些问题。它会搜索一些单词而不会搜索。为什么这样工作?位:Z
由于
答案 0 :(得分:4)
我认为您需要更改您的select语句,以便将MATCH AGAINST部分从order子句移动到字段列表中。
例如
而不是
SELECT *
FROM mytable
WHERE match(text,phone,phone2) AGAINST ('something')
ORDER BY match(text,phone,phone2) AGAINST ('something');
你会有
SELECT mytable.*, match(text,phone,phone2) AGAINST ('something') AS relevanceScore
FROM mytable
WHERE match(text,phone,phone2) AGAINST ('something')
ORDER BY relevanceScore DESC;
所以,就你的情况而言,你的选择更像是
$select->from('tableName',array('*','relevenceScore'=>$db->quoteInto('MATCH(text,phone,phone2,email,email2,www,gadi,augums,skype) AGAINST(?)',$searching_string));
$select->where('MATCH(text,phone,phone2,email,email2,www,gadi,augums,skype) AGAINST(?)',$searching_string);
$select->order('relevanceScore DESC');