嗨,有人可以帮我理解以下错误吗?它说
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, array given in C:\xampp\htdocs\docs\scheme\master\index.php on line 412
我的代码如下;
.....
foreach($_POST['delz'] as $delz)
{
$delz=mysqli_real_escape_string($db,$delz);
$QR = "SELECT bname, bsku FROM brands WHERE id='$delz'";
$rr = mysqli_query($db,$QR) or die ("SQL Error");
$rr = $rr->fetch_assoc();
$roV = mysqli_num_rows($rr); //line 412 reads as this
echo "<tr><td class='sc_five'>".$rr['bname']." ".$rr['bsku'];
....代码继续
感谢您的帮助。
谢谢!
答案 0 :(得分:3)
切换那两行:
$rr = $rr->fetch_assoc();
$roV = mysqli_num_rows($rr);
到
$roV = mysqli_num_rows($rr);
$rr = $rr->fetch_assoc();
mysqli_fetch_assoc()
调用$rr
之后没有引用实际的MySQLi结果资源,而是第一行的数组表示,它丢失了所有其他周围的信息,例如返回的行数。这就是mysql_num_rows()
未能将$rr
确认为有效的MySQLi结果资源的原因。