PHP mysql名字匹配_php mysql匹配没有结果

好吧,所以我正在尝试在我的

mysql表上进行全文搜索.这是查询

SELECT *,

MATCH (title, joke) AGAINST ('welcome') AS relevance,

MATCH (title) AGAINST ('welcome') AS title_relevance

FROM jokes

WHERE MATCH (title, joke) AGAINST ('welcome')

AND flags < 5

ORDER BY title_relevance + relevance + ups DESC, downs ASC LIMIT 0, 30

这是我的桌子

CREATE TABLE IF NOT EXISTS `jokes` (

`jid` varchar(24) NOT NULL,

`uid` int(11) NOT NULL,

`title` mediumtext NOT NULL,

`joke` longtext NOT NULL,

`ups` int(11) NOT NULL DEFAULT '0',

`downs` int(11) NOT NULL DEFAULT '0',

`flags` int(11) NOT NULL DEFAULT '0',

`createddate` int(11) NOT NULL,

`editdate` int(11) NOT NULL,

PRIMARY KEY (`jid`),

FULLTEXT KEY `searcher` (`title`,`joke`),

FULLTEXT KEY `title` (`title`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

我有几行在标题或笑话中包含欢迎,但我似乎没有得到任何结果.我搜索的是什么词并不重要.

我也尝试删除AND标志< 5并且还上升DESC,下降ASC LIMIT 0,30 两者似乎都不起作用. 这就是我用php代码做的事情

if($st->prepare($SearchQuery))

{

if(!$st->execute())

ChromePhp::log("Execute Error: " . $st->error);

else

{

$results = fetchAll($st);

$ret = new stdClass();

$ret->TotalCount = 0;

$ret->Results = $results;

return $ret;

}

}

这是fetchAll(它已经适用于我抛出的每一个其他查询).

function fetchAll($result)

{

$array = array();

if($result instanceof mysqli_stmt)

{

$result->store_result();

$variables = array();

$data = array();

$meta = $result->result_metadata();

while($field = $meta->fetch_field())

$variables[] = &$data[$field->name]; // pass by reference

call_user_func_array(array($result, 'bind_result'), $variables);

$i=0;

while($result->fetch())

{

$array[$i] = array();

foreach($data as $k=>$v)

$array[$i][$k] = $v;

$i++;

// don't know why, but when I tried $array[] = $data, I got the same one result in all rows

}

}

elseif($result instanceof mysqli_result)

{

while($row = $result->fetch_assoc())

$array[] = $row;

}

return $array;

}

任何人都有任何想法,我在这里做错了什么?

谢谢.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值