我正在我的网站内建立一个搜索。我对DB有意见。它给了我这个:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:'Program Files (x86)'EasyPHP-5.3.5.0'www'searchscript'search.php on line 86
我将向您展示给出这种错误的代码部分
line 82: $query = "SELECT * FROM dreams WHERE titolo,titch LIKE '"%$trimmed%'" ORDER BY id_dreams DESC ";
line 85: $numresults=mysql_query($query);
line 86: $numrows=mysql_num_rows($numresults); //error
现在我试着看看查询背后的问题是什么,它告诉我这个:
SELECT * FROM dreams WHERE titolo, titch LIKE "%tags%" ORDER BY id_dreams DESC
你的SQL语法有错误;查看MySQL服务器版本对应的手册,以获取使用"LIKE"标签的正确语法。ORDER BY id_dreams DESC' at line 1
背后的代码是:
$query = "SELECT * FROM dreams WHERE titolo, titch LIKE '"%$trimmed%'" ORDER BY id_dreams DESC ";
$result = mysql_query($query) or die($query."<br/><br/>".mysql_error());
mysql_query返回一个布尔值,这意味着sql查询可能失败,您将获得一个错误的返回值,而不是mysql资源。
你检查过你的查询了吗?
您忘记检查$num_results
是否是MySQL结果资源。在这种情况下,您的查询错误,所以它是FALSE
代替。
重新阅读mysql_query
的文档,并确保您的程序针对所有可能的情况。