MySQL搜索查询不起作用
问题描述:
我试图建立一个基于MySQL全文本的搜索引擎,我没有得到任何搜索结果。 我正在MySQL版本是5.5.24,它支持Innodb的全文。所以我为了达到速度的目的而将数据库类型保存到Innodb中,我的排序规则是utf8mb4_unicode_ci。MySQL搜索查询不起作用
我已经将字段“标题”类型设置为TEXT并修改了表格“test_table”。
ALTER TABLE `test_table` ADD FULLTEXT (`title`)
我正在写这样的查询,但没有显示任何结果。
require_once('../global/includes/connect.php');
$db = mysql_select_db($database,$connection) or trigger_error("SQL", E_USER_ERROR);
$sqlquery = mysql_query("SELECT title FROM test_table WHERE MATCH(title) AGAINST ('%keyword%')");
while($row=mysql_fetch_assoc($sqlquery)){
echo $row['title'];
echo"</br>";
}
查询这样
$sqlquery = mysql_query("SELECT title FROM test_table ");
while($row=mysql_fetch_assoc($sqlquery)){
echo $row['title'];
echo"</br>";
结果显示。
我试着改变数据库到MyISAM,但同样的问题。
请在这里建议我做错了什么。
谢谢。
答
得到它,修改后的查询
$sqlquery = mysql_query("SELECT title FROM test_table WHERE MATCH (title) AGAINST ('keyword' IN BOOLEAN MODE) ")or die (mysql_error());
希望这会帮助别人了。
答
尝试使用以下:
require_once('../global/includes/connect.php');
$db = mysql_select_db($database,$connection) or trigger_error("SQL", E_USER_ERROR);
$sqlquery = mysql_query("SELECT MATCH(title) FROM test_table WHERE MATCH(title) AGAINST ('security')") OR die(mysql_error());
while($row=mysql_fetch_assoc($sqlquery)){
echo $row['title'];
echo"</br>";
}
答
您在keyword
之前缺少$
。
$sqlquery = mysql_query("SELECT title FROM test_table
WHERE MATCH(title) AGAINST ('%$keyword%')");
^
也读this
。
试过但得到错误mysql_fetch_assoc()期望参数1是资源,布尔在 – 2012-07-26 07:54:51
中给出您可以给mysql_error? (mysql_query(your_sql)或die(mysql_error()); – 2012-07-26 07:57:27
致命错误:第4行D:\ wamp \ www \ Software Site \ test.php中的SQL语句 – 2012-07-26 08:02:49