Php mysql\u num\u row()错误
这是我在使用mysql_num_rows()函数时遇到的错误 以下是我的源代码:Php mysql\u num\u row()错误,php,mysql,Php,Mysql,这是我在使用mysql_num_rows()函数时遇到的错误 以下是我的源代码: $title = "SELECT * FROM item WHERE item.title LIKE % " .implode("% OR item.title LIKE % ", $data); $title_result = mysql_query($title, $this->dbh); echo mysql_num_rows($title_result); 我正在做的是创建一个网站搜索。目前,我
$title = "SELECT * FROM item WHERE item.title LIKE % " .implode("% OR item.title LIKE % ", $data);
$title_result = mysql_query($title, $this->dbh);
echo mysql_num_rows($title_result);
我正在做的是创建一个网站搜索。目前,我正在执行4条Select语句,然后我想对数据库中所有4条sql语句中的所有内容进行汇总。如果我的想法正确,mysql_num_rows()将返回从Select语句中找到的行数。所以在理论上,我想我可以把它们加在一起,得到我在搜索中找到的总数,我的想法正确吗?如果不正确,我怎么可以把4个不同的sql select语句加在一起呢
我的测试搜索也在数据库中
提前感谢您的帮助。您的查询似乎无法执行。在尝试
mysql\u num\u rows
之前,需要检查mysql\u query
的返回值
$title_result = mysql_query($title, $this->dbh);
if($title_result)
{
echo mysql_num_rows($title_result);
}
else
{
die(mysql_error());
}
在您的案例中实际发生的情况是,mysql\u query
返回的是false
,这不是有效的mysql结果资源,当您将其传递到mysql\u num\u rows
时,它返回以下错误:
Error: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
您的MySQL语句没有正确执行。这只是一种预感,但请在将
$title
替换为以下内容后重试:
$title = 'SELECT * FROM item WHERE item.title LIKE "%'.implode('%" OR item.title LIKE "%', $data).'%"';
然后,按如下方式执行:
$result = mysql_query ($title, $this->dbh) or die (mysql_error($this->dbh));
注意:这是假设您信任
$data
。如果它来自外部来源(如用户指定的搜索),您真的应该通过mysql\u real\u escape\u string
或准备好的语句进行清理非常感谢您修复了我的所有问题。我无法告诉你我有多感激,因为我花了大约两个小时来研究这个问题,试图找出答案,但我开始感到非常沮丧 好吧,这显然是我的错误。所以我假设我没有正确使用LIKE函数。我在谷歌上到处找,找不到好的解释。类似的东西如何与mysql配合使用?您建议的标题很有效。非常感谢。另外一个快速问题是,您是否可以添加多个mysql_num_rows()?我的直觉是肯定的,因为它返回一个int,但我只想确认我的直觉。如果我的直觉是错误的,我如何才能添加多个Select语句?@Snader-yes,您可以这样添加行。不过,通过一个精心编制的SQL语句,您可能可以更快地完成这项工作。另外,如果您只对行数感兴趣,那么使用COUNT(*)
查询会更好。
$result = mysql_query ($title, $this->dbh) or die (mysql_error($this->dbh));