php mysql_num_rows和mysql_num_fields获取结果集总行数和总列数

时间:2016-07-21
php有两个处理结果集数目的函数,分别为mysql_num_rows和mysql_num_fields,二者不同之处在于前者获取的是条数(即多少行数据),而后者获取列数(即有多少列)。本文章向大家介绍这两个函数的使用方法和区别。

先大概讲解一下这两个行数的基本使用规则:

  1. mysql_num_rows()函数获取查询结果集的行数目(即总行数),该函数需要接受一个执行mysql_query所返回的资源标识符。
  2. mysql_num_fields()函数获取查询结果集的列数目(即有多少列),该函数同mysql_num_rows一样,也需要接受一个执行mysql_query所返回的资源标识符。

mysql_num_rows()与mysql_num_fields()实例

比如现在有这样一个表,表结构和表数据如下图:

mysql_num_rows()与mysql_num_fields()实例

现在分别用mysql_num_rows()与mysql_num_fields()计算结果集的总行数和总列数。

<?php
    mysql_connect("localhost","root","");
    mysql_select_db("test");
   $sql = "SELECT student_id,student_name FROM student";
   /* http://www.manongjc.com/article/1235.html */
   $rs = mysql_query($sql);
   echo "结果集一共有".mysql_num_fields($rs)."列<br />";
   echo "结果集一共有".mysql_num_rows($rs)."条数据<br />";

?>

输出结果为:

结果集一共有2列
结果集一共有10条数据

因为我们值查询了student_id和student_name两个字段,所以mysql_num_fields($rs)返回2列

而且我们查询的时候没有使用任何where过滤条件,所以mysql_num_rows($rs)返回10行。