在使用 PHP 操作 MySQL 数据库时,我们常常需要知道某个查询语句返回了多少行数据。这在分页、数据校验等场景中尤为常见。本文将介绍如何通过 mysqli_result::num_rows 方法来获取查询结果的行数。
mysqli_result::num_rows 是一个面向对象的属性,用于获取查询结果集中行的数量。它只能用于 SELECT 查询,并且在查询成功且结果集中包含数据时使用。
$result->num_rows;
其中 $result 是 mysqli::query() 执行后返回的 mysqli_result 对象。
以下是一个简单的 PHP 示例,演示如何使用 mysqli_result::num_rows 获取查询结果的行数:
<?php
// 数据库连接配置
$host = 'localhost';
$user = 'root';
$password = 'your_password';
$database = 'test_db';
// 创建数据库连接
$mysqli = new mysqli($host, $user, $password, $database);
// 检查连接是否成功
if ($mysqli->connect_error) {
die('连接失败: ' . $mysqli->connect_error);
}
// 定义查询语句
$sql = "SELECT * FROM users WHERE status = 'active'";
// 执行查询
$result = $mysqli->query($sql);
// 检查查询是否成功
if ($result) {
// 获取行数
echo "共有 " . $result->num_rows . " 个激活用户。";
// 释放结果集
$result->free();
} else {
echo "查询出错: " . $mysqli->error;
}
// 关闭数据库连接
$mysqli->close();
?>
num_rows 只能用于 SELECT 类型的查询,对于 INSERT、UPDATE 或 DELETE 无效。
如果使用的是 mysqli::store_result() 获取结果集,则同样可以通过 num_rows 获取行数。
若数据量较大,推荐通过 SQL 语句 SELECT COUNT(*) 来统计总行数,提高性能。
通过本文的介绍,相信你已经掌握了如何通过 mysqli_result::num_rows 获取 MySQL 查询结果的行数。在日常开发中,善用这一属性能够帮助你更高效地处理数据。
你还想了解 mysqli 的其他常用方法吗?