【问题标题】:mysqli_num_rows is not workingmysqli_num_rows 不工作
【发布时间】:2018-01-05 12:25:57
【问题描述】:

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

$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;

【问题讨论】:

  • $row = mysqli_fetch_array($count_winner); echo $row['num'];
  • mysql_error() btw 不与mysqli_ api 混合使用。它应该是 mysqli_error() 并将连接作为其(单个)参数传递。
  • 刚果人谢谢你 ....@NanaPartykar
  • congo man 是什么意思,恭喜?如果解决方案有效,您应该接受以下答案之一。 @rabibgalib
  • 哈哈:D@chris85:我不知道我被祝贺的目的是什么。哈哈?

标签: php database mysqli


【解决方案1】:

您所看到的是预期的。 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() 并将连接作为其(单个)参数传递。

参考:

【讨论】:

  • @Fred-ii- 我不知道。
【解决方案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() 函数返回结果中的行数 设置。

【讨论】:

  • 查看我在另一个答案中所做的(轻微)编辑以及我在关于mysql_error() 的问题下留下的评论;-)
猜你喜欢
  • 1970-01-01
  • 2014-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多