文章教程

13.3.2用PHP处理数据结果集

9/17/2020 9:26:54 PM 人评论 次浏览

13.3.2 用PHP处理数据结果集

当一个SQL语句在程序中成功执行之后,可以使用mysql_fetch_array()来获取具体的查询结果,即使用该函数获取记录的字段值。代码13-5中调用该函数获取SELECT语句的查询结果。

代码13-5 使用函数mysql_fetch_array()获取查询结果集13-5.php


01 <?php

02 $host='localhost';//定义服务器

03 $user_name='root';//定义用户名

04 $password='admin';//定义密码

05

06 $conn=mysql_connect($host,$user_name,$password);//连接MySQL

07 if(!$conn)

08 {

09 die('数据库连接失败:'.mysql_error());

10 }

11 mysql_select_db('test');//选择数据库

12

13 $sql='select id,name,city from users';

14

15 $result=mysql_query($sql)OR die("<br/>ERROR:<b>".mysql_error()."</b><br/>产生问题的SQL:".$sql);

16

17 if($num=mysql_num_rows($result))//判断SELECT语句查找到的行数

18 {

19 $row=mysql_fetch_array($result);//mysql_fetch_array()将结果集中的一行作为数组返回

20 echo'<pre>';

21 print_r($row);//输出由函数mysql_fetch_array()返回的数组

22 }

23

24 mysql_close($conn);

25 ?>


【代码解析】程序在第17行使用函数mysql_num_rows()的返回值来判断SELECT语句是否查找到更多的行,如果mysql_num_rows()返回值不为0,即找到数据,则调用函数mysql_fetch_array()获取结果集。执行这段代码,可以看到如图13-7所示的结果。

图 13-7 显示由mysql_fetch_array()返回的结果集

前面介绍函数mysql_fetch_array()时,讲述到该函数返回的是结果集中的一行,并将其作为关联数组或普通数组,默认该返回数组是二者兼有的。从图13-7也可以看出,mysql_fetch_array()返回的数组为每个字段值建立了两个索引:一个是以数字为索引,另一个以字段名为索引。

函数mysql_fetch_array()只能返回结果集中的一行,循环调用该函数,可以取得结果集中的所有行。代码13-6演示了调用mysql_fetch_array()取得结果集中的所有记录。

代码13-6 使用函数mysql_fetch_array()获取结果集中的所有记录13-6.php


01 <?php

02 $host='localhost';//定义服务器

03 $user_name='root';//定义用户名

04 $password='admin';//定义密码

05

06 $conn=mysql_connect($host,$user_name,$password);//连接MySQL

07 if(!$conn)

08 {

09 die('数据库连接失败:'.mysql_error());

10 }

11 mysql_select_db('test');//选择数据库

12

13 $sql='select id,name,city from users';

14

15 $result=mysql_query($sql)OR die("<br/>ERROR:<b>".mysql_error()."</b><br/>产生问题的SQL:".$sql);

16

17 if($num=mysql_num_rows($result))

18 {

19 echo'<pre>';//格式化输出

20 while($row=mysql_fetch_array($result,MYSQL_ASSOC))

21 {

22 print_r($row);//输出每行数据

23 }

24 }

25

26 mysql_close($conn);

27 ?>


【代码解析】这段代码第20行使用while循环多次调用函数mysql_fetch_array(),每次将调用返回的数组赋给变量$row,然后在循环体内将数组变量$row输出。代码13-6的执行结果如图13-8所示。

图 13-8 使用mysql_fetch_array()获取结果集的所有记录

代码13-6中调用函数mysql_fetch_array()时指定第2个参数为MYSQL_ASSOC,因此其返回的结果集数组是以字段名为索引的关联数组。

教程类别