1.5.3 mysql_fetch_array函数:从结果集中取得一行作为数组
【功能说明】
该函数将从指定的结果集中取得一行数据作为关联数组、数字数组或者两者兼有。该函数不但可以将数字作为数组的索引存储,还可以将字符作为数组的索引存储,用结果集中数据的字段名作为数组的键名。该函数执行成功返回指定类型的数组,如果没有更多行则返回FALSE。
注:该函数是mysql_fetch_row()函数的扩展版本。而该函数比函数mysql_fetch_row()的效率更高。该函数返回的字段名是区分大小写的。
【函数语法】
array mysql_fetch_array(resource result[,int result_type])
其中,参数resul执行函数mysql_query()返回的结果集;可选参数result_type指定的是返回数组的类型,可能的值如下:
■ MYSQL_ASSOC:指的是关联数组,效果和执行函数mysql_fetch_assoc()相似。
■ MYSQL_NUM:指的是数字数组,效果和执行函数mysql_fetch_row()相似。
■ MYSQL_BOTH:指的是同时包含关联和数字索引的数组。
该参数的默认值是MYSQL_BOTH字符和数字都能作为数组的索引。该函数的返回值为数组型。
【示例程序】下面使用本例函数从指定的结果集中取得一行数据作为关联数组和数字数组两者兼有的数组。代码如下:
<?php //打开一个非持久的MySQL服务器的连接 $link = mysql_connect("localhost", "root", "123456")or die("connection error: ".mysql_error()); mysql_select_db("project",$link);//通过打开的连接选择数据库 $sql = "select * from language"; //书写SQL语句,查询数据表中的字段 $result = mysql_query($sql,$link); //执行一条MySQL语句 $array = mysql_fetch_array($result); //从结果集中取得一行数据作为数组 print_r($array); //输出返回的结果 mysql_close($link); //关闭打开的连接 ?>
以上代码的运行结果如图1.26所示。
图1.26 运行结果
上述代码中,成功地连接了指定的MySQL服务器,书写执行了一条查询数据表中数据的SQL语句。从代码语句$array =mysql_fetch_array($result);可以看出该函数并没有指定可选参数result_type的值,则采用默认值MYSQL_BOTH。从结果集$result中取得一行数据作为关联和数字数组两者兼有的数组$array。返回的结果是Array([0]=>1[id]=>1[1]=>PHP[name]=>PHP),可以看出这个数组中既含有数字索引,还含有关联的字符索引。