MySQL 中的 mysql_num_rows() 函数报错解决方法
在本文中,我们将介绍 MySQL 数据库中常见报错信息之一:mysql_num_rows() 函数报错,提供相应的解决方法。
阅读更多:MySQL 教程
错误信息
在使用 MySQL 数据库操作时,经常会用到 mysql_num_rows() 函数来获取结果集中的数据行数。但有时候会出现以下报错信息:
同时,由于该错误信息只是一个警告,因此下面的代码仍然会继续执行,导致结果可能不准确。因此,在使用 mysql_num_rows() 函数时需要特别注意。
报错原因
该报错信息出现的主要原因是,mysql_num_rows() 函数的参数并不是结果集,而是 mysqli_query() 函数的返回值,即查询语句执行的结果资源句柄。当查询语句执行失败时,mysqli_query() 函数会返回 false,而不是结果资源句柄,这时候如果将 false 作为参数传给 mysql_num_rows() 函数,就会出现上述报错信息。
下面是一个例子:
如果查询语句执行失败,$result 变量将会得到 false,将 false 作为参数传给 mysql_num_rows() 函数时就会出现上述报错信息。
解决方法
解决上述报错信息只需要将 mysql_num_rows() 函数的参数改为mysqli_query() 函数的返回值即可,同时在参数传递前需要进行类型判断,确保传递的是结果资源句柄。
改进后的代码如下:
修改后,如果查询语句执行失败,$result 变量将会得到 false,由于 false 不是一个对象,因此不会传递给 mysql_num_rows() 函数,同时也能够避免上述报错信息的出现。
总结
本文介绍了出现“mysql_num_rows() expects parameter 1 to be resource, boolean given”报错信息的原因和解决方法,提醒读者在使用 mysql_num_rows() 函数时要特别注意传递的参数类型,避免出现不必要的错误。