在之前的学习中,我们已经了解怎样获取sql的查询结果,怎样一次执行多条sql语句,在PHP中是有函数能够获取查询结果的行数的,也就是查询到的结果集中有多少条数据,这个函数就是 MysqLi_num_rows()
函数,那接下来我们就来看一下MysqLi_num_rows()
函数的相关知识吧。
在 PHP 中,想要获取由 SELECT 语句查询到的结果集中有多少条数据的话,则需要使用 MysqLi_num_rows() 函数来实现。首先我们来看一下该函数的语法结构:
$MysqLi_result -> num_rows;
这是面向对象写法的语法,下面是面向过程写法的语法:
MysqLi_num_rows(MysqLi_result $result)
其中我们需要注意的是:
接下来我们通过示例来看一下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_result::fetch_object([string $class_name = stdClass[, array $params]])
这是面向对象的写法,下面我们看一下面向过程的写法语法格式如下:
MysqLi_fetch_object(MysqLi_result $result[, string $class_name = stdClass[, array $params]])
其中需要注意的是:
接下来我们通过示例来看一下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(); } ?>
输出结果: