此代码的主要问题是什么?测试时 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;
答案 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()函数返回结果中的行数 集。