PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
mysql_fetch_*列函数
mysql_fetch_*列函数的主要功能是从查询返回的结果集中取得相关的查询结果,主要包括:
- mysql_fetch_array():从结果集中取得一行作为关联数组或索引数组,或二者兼有
- mysql_fetch_row():从结果集中取得一行作为枚举数组
- mysql_fetch_assoc():从结果集中取得一行作为关联数组
- mysql_fetch_object():从结果集中取得一行作为对象
- mysql_fetch_field():从结果集中取得字段信息并作为对象返回
- mysql_fetch_lengths():取得结果集中取得一行每个字段内容输出的长度
- mysql_fetch_array()
mysql_fetch_array()函数用于从结果集中取得一行作为关联数组或索引数组,或二者兼有。成功返回一个数组,否则返回FALSE。
语法:
arraymysql_fetch_array(resourceresult[,intresult_type])
参数说明:
- result:查询函数(如mysql_query)返回的数据集资源
- result_type:可选常量,标明数组结果类型,可接受值如下:
- MYSQL_BOTH:默认,得到一个同时包含关联和数字索引的数组,用字段名作为键名
- MYSQL_ASSOC:只得到关联索引的数组
- MYSQL_NUM:只得到数字索引的数组
例子1,使用MYSQL_NUM:
<?php $conn=@mysql_connect("localhost","root","root123"); if(!$conn){ die("连接数据库失败:".mysql_error()); } mysql_select_db("test",$conn); mysql_query("setcharacterset'gbk'"); $result=mysql_query("SELECTuid,usernameFROMuser"); while($row=mysql_fetch_array($result,MYSQL_NUM)){ echo"用户ID:".$row[0]."<br/>"; echo"用户名:".$row[1]."<br/>"; } ?>
浏览器输出:
用户ID:1 用户名:admin 用户ID:2 用户名:小明 用户ID:3 用户名:Jack 用户ID:4 用户名:小王
例子2,使用MYSQL_ASSOC:
//重复代码省略 $result=mysql_query("SELECTuid,usernameFROMuser"); while($row=mysql_fetch_array($result,MYSQL_ASSOC)){ echo"用户ID:".$row['uid']."<br/>"; echo"用户名:".$row['username']."<br/>"; }
浏览器输出内容同上。
当使用MYSQL_BOTH或省略该参数是,将同时具有MYSQL_NUM与MYSQL_ASSOC的特性。
说明
本函数返回的字段名作为数组键值是区分大小写的
用mysql_fetch_array()并不明显比用mysql_fetch_row()慢,而且还提供了明显更多的值
该函数只从当前数据指针取得一行数据作为结果返回,如果执行过一次,会将数据指针指向下一列数据
如果要取得多行或者全部数据,需要使用循环结构将数据逐行取出
如果结果中的两个或以上的列具有相同字段名,最后一列将优先。要访问同名的其它列,必须用该列的数字索引或给该列起个别名
mysql_fetch_row()
PHP的MySQL操作函数mysql_fetch_row()用于从结果集中取得一行作为枚举数组。成功返回一个数组,否则返回FALSE。
语法:
arraymysql_fetch_row(resourceresult)
该函数表现与mysql_fetch_array(resourceresult,MYSQL_NUM)一致,请参考mysql_fetch_array()函数用法,在此不在赘述。
mysql_fetch_object()
PHP操作MySQL的函数mysql_fetch_object()用于从结果集中取得一行作为对象,成功返回一个对象,否则返回FALSE。
语法:
objectmysql_fetch_object(resourceresult)
例子:
<?php $conn=@mysql_connect("localhost","root","root123"); if(!$conn){ die("连接数据库失败:".mysql_error()); } mysql_select_db("test",$conn); mysql_query("setcharacterset'gbk'"); $result=mysql_query("SELECTuid,usernameFROMuser"); while($row=mysql_fetch_object($result)){ echo"用户ID:".$row->uid."<br/>"; echo"用户名:".$row->username."<br/>"; } ?>
浏览器输出:
用户ID:1 用户名:admin 用户ID:2 用户名:小明 用户ID:3 用户名:Jack 用户ID:4 用户名:小王