当前位置: 首页> 最新文章列表> 如何使用 mysqli_result::num_rows 获取结果行数

如何使用 mysqli_result::num_rows 获取结果行数

M66 2025-05-28

在使用 PHP 操作 MySQL 数据库时,我们常常需要知道某个查询语句返回了多少行数据。这在分页、数据校验等场景中尤为常见。本文将介绍如何通过 mysqli_result::num_rows 方法来获取查询结果的行数。

什么是 mysqli_result::num_rows?

mysqli_result::num_rows 是一个面向对象的属性,用于获取查询结果集中行的数量。它只能用于 SELECT 查询,并且在查询成功且结果集中包含数据时使用。

基本语法

$result->num_rows;

其中 $resultmysqli::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();
?>

注意事项

  1. num_rows 只能用于 SELECT 类型的查询,对于 INSERTUPDATEDELETE 无效。

  2. 如果使用的是 mysqli::store_result() 获取结果集,则同样可以通过 num_rows 获取行数。

  3. 若数据量较大,推荐通过 SQL 语句 SELECT COUNT(*) 来统计总行数,提高性能。

延伸阅读

通过本文的介绍,相信你已经掌握了如何通过 mysqli_result::num_rows 获取 MySQL 查询结果的行数。在日常开发中,善用这一属性能够帮助你更高效地处理数据。

你还想了解 mysqli 的其他常用方法吗?