PHP/MySQL 不返回数据库中的行数

标签 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

最佳答案

这一行是你的问题:

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

您要求 _num_rows() ofCOUNT 查询。如果 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 合适?好吧,如果您实际上将查询用于其他用途,但需要提前知道行数,那么最好不要在此处进行两个单独的查询。

关于PHP/MySQL 不返回数据库中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29956579/

相关文章:

MySQL 将多列数据合并为 1 列

php - 使用 mysql 中的 php 更新值 NULL

php - 使用 Isotope 和 InfiniteScroll 进行 MySQL 查询

php - 多个php版本,无法连接mysqli

javascript - Ajax 在 PHP 页面上不工作

php - mysql_real_escape_string 从存储的电子邮件中删除换行符

PHP 在类名前加上子空间用于自动加载

php只比较两个日期,月份和年份

mysql - 选择具有最新日期的值并按另一列分组

php - 数据库表不与任何其他表关联