mysqli_num_rows无效

时间:2017-07-29 14:24:49

标签: php database mysqli

此代码的主要问题是什么?测试时 SELECT count(获胜者)AS num FROM subscribe_user WHERE获胜者='是' AND hitdate = CURDATE()这个代码在数据库sql中的sql中 它显示num为3 但是下面显示的代码只显示了应该为3的代码。

$link = mysqli_connect("localhost", "root", "", "bot");
$count_winner=mysqli_query($link,"SELECT count(winner) AS num FROM 
subscribe_user WHERE winner ='yes' AND hitdate=CURDATE()")or 
 die(mysql_error());
$w=mysqli_num_rows($count_winner);
echo $w;

2 个答案:

答案 0 :(得分:4)

您所看到的是预期的。 mysqli_num_rows为您提供结果中的行数 - 1。结果中的num字段会显示count(winner) - 3的值。这些是不同的指标。

  

但我想在DB SQL中打印3。我怎样才能做到这一点?

而不是抓住mysqli_num_rows,实际上是读取结果:

$result = mysqli_query('...') or die('...');    
$w = $result->fetch_assoc()['num'];

此外,mysql_error()不会与mysqli_ api混在一起。它应该是mysqli_error()并将连接作为其(单个)参数传递。

参考:

答案 1 :(得分:2)

$link = mysqli_connect("localhost", "root", "", "bot");
$count_winner = mysqli_query($link,"SELECT count(winner) AS num FROM subscribe_user WHERE winner ='yes' AND hitdate=CURDATE()") or mysqli_error($link));
$row = mysqli_fetch_array($count_winner);
echo $row['num']; //Will output the count of number of winners
  

mysqli_num_rows()函数返回结果中的行数   集。