微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用mysql_fetch_array()获取当前行数据的方法详解

MysqL_fetch_row()类似,函数MysqL_fetch_array()也是获取结果集中当前行数据,并在调用自动滑向下一行。其定义如下。
<div class="codetitle"><a style="CURSOR: pointer" data="77424" class="copybut" id="copybut77424" onclick="doCopy('code77424')"> 代码如下:

<div class="codebody" id="code77424">
array MysqL_fetch_array(int result,int [result_type])

参数说明如下。

<FONT style="COLOR: #ff0000">(1)result:由函数MysqL_query()或MysqL_db_query()返回的结果标识,用来指定所要获取的数据的sql语句类型。
(2)result_type:用于指定结果集类型,可选,取值范围为PHP常量集合{MysqL_ASSOC,MysqL_NUM,MysqL_BOTH}。
函数返回值如下。

<FONT style="COLOR: #ff0000">成功:

一个数组,该数组包含了查询结果集中当前行数据信息,数组下标范围0~记录属性数−1,数组中的第i个元素值为该记录第i个属性上的值。同时可以使用属性名来得到该属性上的值。
失败:false。
下面示例使用MysqL_fetch_array()得到Computers数据表中价格不小于20的图书信息。
<div class="codetitle"><a style="CURSOR: pointer" data="69138" class="copybut" id="copybut69138" onclick="doCopy('code69138')"> 代码如下:
<div class="codebody" id="code69138">
1 <!----使用mysql_fetch_array()来获取数据:mysql_fetch_array.php---->
2 <?PHP
3 //连接并选择到数据库服务器
4 $connection = MysqL_connect ("localhost","root","password");
5 MysqL_select_db("Books",$connection);
6 //查询数据
7 $query="SELECT * FROM Computers ";
8 $query.="WHERE price >= 20";
9 //echo $query."
";
10 $result=MysqL_query($query,$connection);
11 //MysqL_fetch_array()获得数据,并输出
12 while($row=MysqL_fetch_array($result))
13 {
14 echo "书名: ".$row[1]."
";
15 echo "价格: ".$row["price"]."
";
16 echo "出版日期: ".$row["publish_date"]."
";
17 echo "
";
18 }
19 ?>

示例在第12行使用MysqL_fetch_array()获取当前行数据,然后在第12~18行的循环中分别使用属性索引和属性获取这一行某属性上的值。从中不难看出,MysqL_fetch_array()与MysqL_fetch_row()的区别在于,前者返回数组中保存了结果集的两个备份,一个可以通过属性索引访问,另一个则可以通过属性名访问。

<FONT style="COLOR: #ff0000">注意

当通过属性名访问属性上的值时,如果有几个属性的名相同,则索引在后的属性会把在前的属性值覆盖掉。因此,在使用属性名获得数据时,要避免查询结果集中属性重名。
示例运行的结果如下。
<div class="codetitle"><a style="CURSOR: pointer" data="47112" class="copybut" id="copybut47112" onclick="doCopy('code47112')"> 代码如下:
<div class="codebody" id="code47112">
书名: 数据结构
价格: 20
出版日期: 2001-01-01
书名: C语言
价格: 23
出版日期: 1998-04-04
书名: PHP入门技术
价格: 22
出版日期: 2005-05-01

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐