然而我有一个问题(可能是语法)让我发疯。
以下是代码:
<?php
$busqueda= $_GET["words"];
require("conectdb.php");
if ($busqueda<>''){
$trozos=explode(" ",$busqueda);
$numero=count($trozos);
if ($numero==1) {
$cadbusca="SELECT * FROM post WHERE contenido LIKE '%$busqueda%' OR titulo LIKE '%$busqueda%'";
} elseif ($numero>1) {
$cadbusca="SELECT * , MATCH ( 'titulo', 'contenido' ) AGAINST ( '$busqueda' ) AS Score FROM post WHERE MATCH ( 'titulo', 'contenido' ) AGAINST ( '$busqueda' ) ORDER BY Score DESC";
}
$result=(mysql_query($cadbusca));
while($info = mysql_fetch_array($result))
{
echo $info["id"]." ".$info["titulo"]." ".$info["contenido"];
}
}
?>
这是多个单词搜索后的错误:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home1/foodbook/public_html/search/wordsearch.php on line 19
字段设置为全文....
THX
答案 0 :(得分:2)
警告表示您的查询失败。如果查询失败,mysql_query()
返回布尔值FALSE,您可以使用mysql_error()
检索错误消息:
$res = mysql_query($cadbusca);
if ($res === FALSE) {
die("Query failed: " . mysql_error());
}
您的代码假设查询成功并尝试从该false值获取行,该值不是有效的结果句柄。假设查询成功是不好的做法。即使查询字符串在语法上是有效的,也有很多其他方法可以发生故障,并且您应该检查每一步的成功(或失败)。