PHP / MySQL没有返回数据库中的行数

时间:2015-04-29 23:45:46

标签: php mysql mysqli

我正在尝试计算数据库中用于分页脚本的行数。我的整个脚本都工作,直到计算行数。

这是应该计算我的行的代码[$ conn是一个使用我的数据库登录设置的变量 - 它在整个代码中使用并且有效,除了这一点]。

$limit = 2;
$rows = mysql_num_rows(mysqli_query($conn, "SELECT count(*) FROM pilotOperators"));
$total=ceil($rows/$limit);

要测试我的代码,我将其添加到页面的末尾:

echo "Total:" . $total . "<br>";
echo "Rows:" . $rows . "<br>";
echo "Limit:" . $limit . "<br>";

这是我的源代码所得到的结果:

Total:0<br>Rows:<br>Limit:2<br>

我尝试了几种变体等,但没有任何东西可以返回一个数字。

解决:感谢两个不同的答案(显然我有两个错误)。

我的一条线改为:

$rows = mysqli_num_rows(mysqli_query($conn, "SELECT * FROM pilotOperators"));

它现在就像一个魅力。

感谢Mureinik和EyasSH

1 个答案:

答案 0 :(得分:3)

这一行是你的问题:

$rows = mysql_num_rows(mysqli_query($conn, "SELECT count(*) FROM pilotOperators"));

您要求_num_rows() 一个COUNT查询。如果oyu loo kat结果

mysqli_query($conn, "SELECT count(*) FROM pilotOoperators");

你会发现你会得到一行一列:

|----------|
| count(*) |
|----------|
| 233      | etc
|----------|

你想要的是:

$rows_result = mysqli_query($conn, "SELECT count(*) FROM pilotOoperators")->fetch_row();
$rows = $rows_result[0];

使用COUNT汇总查询通常总是比num_rows更好。什么时候适合使用mysqli_num_rows?好吧,如果你实际上是在使用其他东西的查询,但需要提前知道行数,那么最好不要在这里进行两次单独的查询。