
在之前的学习中,我们已经了解怎样获取SQL的查询结果,怎样一次执行多条SQL语句,在PHP中是有函数能够获取查询结果的行数的,也就是查询到的结果集中有多少条数据,这个函数就是 mysqli_num_rows() 函数,那接下来我们就来看一下mysqli_num_rows() 函数的相关知识吧。
mysqli_num_rows() 函数
在 PHP 中,想要获取由 SELECT 语句查询到的结果集中有多少条数据的话,则需要使用 mysqli_num_rows() 函数来实现。首先我们来看一下该函数的语法结构:
$mysqli_result -> num_rows;
这是面向对象写法的语法,下面是面向过程写法的语法:
mysqli_num_rows(mysqli_result $result)
其中我们需要注意的是:
$mysqli_result和$result为使用 mysqli_query() 函数返回的结果集。mysqli_num_rows()函数仅对 SELECT 语句有效,如果返回的行数大于PHP_INI_MAX,则将行数以字符串的形式返回。
接下来我们通过示例来看一下mysqli_num_rows() 函数的用法吧
示例如下:
<?php
$host = 'localhost';
$username = 'root';
$password = 'root';
$dbname = 'test';
$mysql = new Mysqli($host, $username, $password, $dbname);
if($mysql -> connect_errno){
die('数据库连接失败:'.$mysql->connect_errno);
}else{
$sql = 'select name,sex,age from user'; // SQL 语句
$result = $mysql -> query($sql); // 执行上面的 SQL 语句
$num = $result -> num_rows; // 获取查询结果的行数
$mysql -> close();
}
echo '一共查询到 '.$num.' 条记录。';
?>输出结果:

上述示例是通过面向对象的写法,下面看一下面向过程的写法:
<?php
$host = 'localhost';
$username = 'root';
$password = 'root';
$dbname = 'test';
$link = @mysqli_connect($host, $username, $password, $dbname);
if($link){
$sql = 'select name,sex,age from user'; // SQL 语句
$result = mysqli_query($link, $sql); // 执行 SQL 语句,并返回结果
$num = mysqli_num_rows($result); // 获取查询结果的行数
mysqli_close($link);
}else{
echo '数据库连接失败!';
}
echo '一共查询到 '.$num.' 条记录。';
?>其输出结果与上述结果相同,上述事例中通过mysqli_num_rows() 函数完成了查询数据集有多少条数据的结果。
下面给大家补充一下,之前我们学习查询结果的时候输出的结果都是索引数组或者是关联数组的形式返回的结果,下面给大家补充一下通过对象的形式返回,那就要通过mysqli_fetch_object() 函数来实现。
mysqli_fetch_object() 函数
mysqli_fetch_object() 函数能够从结果集中取得一行,并以对象的形式返回,它的语法格式如下:
mysqli_result::fetch_object([string $class_name = "stdClass"[, array $params]])
这是面向对象的写法,下面我们看一下面向过程的写法语法格式如下:
mysqli_fetch_object(mysqli_result $result[, string $class_name = "stdClass"[, array $params]])
其中需要注意的是:
mysqli_result表示mysqli_query() 函数获取的结果集;$class_name表示为可选参数,用来规定实例化的类名称,设置属性并返回;$params表示为可选参数,用来规定一个传给 $classname 的构造函数的可选参数数组。
接下来我们通过示例来看一下mysqli_fetch_object() 函数返回结果集中的当前行,并输出每个字段的值。
示例如下:
<?php
$host = 'localhost';
$username = 'root';
$password = 'root';
$dbname = 'test';
$mysql = new Mysqli($host, $username, $password, $dbname);
if($mysql -> connect_errno){
die('数据库连接失败:'.$mysql->connect_errno);
}else{
$sql = 'select name,sex,age from user'; // SQL 语句
$result = $mysql -> query($sql); // 执行上面的 SQL 语句
if($result){
while($obj = $result -> fetch_object()){
printf('姓名:%s,性别:%s,年龄:%s <br>', $obj->name,$obj->sex,$obj->age);
}
}
$mysql -> close();
}
?>输出结果:

由此我们便通过mysqli_fetch_object() 函数可以从结果集中取得一行,并以对象的形式返回。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
-
什么是因特网?它有什么作用?因特网的组成有哪些? 时间:2025-10-28 -
什么是因特网?什么是万维网?两者之间的区别是什么? 时间:2025-10-28 -
什么是局域网和广域网?两者之间的区别是什么? 时间:2025-10-28 -
什么是网络协议?常用的网络协议有哪些类型? 时间:2025-10-28 -
什么是网络协议? 它在网络中的作用是什么? 时间:2025-10-28 -
什么是网络协议?协议的三要素是什么?各有什么含义? 时间:2025-10-28
今日更新
-
2026年AI概念币投资指南 热门交易所权威推荐
阅读:18
-
十二星座是什么梗?揭秘星座爆笑名场面,一秒get你的专属笑点!
阅读:18
-
2026年十大热门Memecoin预测:DOGE、PEPE、WIF谁将登顶
阅读:18
-
"躺平摸鱼是什么梗?当代年轻人职场摆烂新姿势"
阅读:18
-
2026年去中心化AI代币TOP榜:FET与AGIX领衔未来趋势
阅读:18
-
2026年RWA代币TOP榜:ONDO、POLY、CFG领跑实物资产赛道
阅读:18
-
【SEO优化版】
"卷心菜兄是什么梗"揭秘网络热词背后打工人的自嘲式幽默,3秒get最新职场梗!
阅读:18
-
2026十大交易平台稳定性排名 币安欧易稳居榜首
阅读:18
-
王者荣耀十周年峡谷金曲玩家合唱版MV今日正式上线
阅读:18
-
2026全球最安全交易所排名 注册前必看权威指南
阅读:18










