mysql php 关于mysql_fetch函数

本文详细介绍了MySQL与PHP交互时常用的几个数据获取函数,包括mysql_fetch_array、mysql_fetch_row、mysql_fetch_assoc和mysql_fetch_object。这些函数帮助开发者从结果集中获取数据,返回数组或对象形式。mysql_fetch_array提供了多种返回类型选项,而mysql_fetch_row和mysql_fetch_assoc分别返回索引数组和关联数组。mysql_fetch_object则将数据以对象形式返回。注意,字段名作为数组键值时是区分大小写的。
摘要由CSDN通过智能技术生成
  • 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 。

语法:

?
1
array mysql_fetch_array( resource result [, int result_type] )

参数说明:

  • result:查询函数(如 mysql_query)返回的数据集资源
  • result_type:可选常量,标明数组结果类型,可接受值如下:
  • MYSQL_BOTH:默认,得到一个同时包含关联和数字索引的数组,用字段名作为键名
  • MYSQL_ASSOC:只得到关联索引的数组
  • MYSQL_NUM:只得到数字索引的数组
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$conn = @mysql_connect( "localhost" , "root" , "root123" );
if (! $conn ){
  die ( "连接数据库失败:" . mysql_error());
}
 
mysql_select_db( "test" , $conn );
mysql_query( "set character set 'gbk'" );
 
$result = mysql_query( "SELECT uid,username FROM user" );
while ( $row = mysql_fetch_array( $result , MYSQL_NUM)){
  echo "用户ID:" . $row [0]. "<br />" ;
  echo "用户名:" . $row [1]. "<br />" ;
}
?>

浏览器输出:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
用户ID:1
 
用户名:admin
 
用户ID:2
 
用户名:小明
 
用户ID:3
 
用户名:Jack
 
用户ID:4
 
用户名:小王



?
1
2
3
4
5
6
//重复代码省略
$result = mysql_query( "SELECT uid,username FROM user" );
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 。
语法:

?
1
array mysql_fetch_row( resource result )

该函数表现与 mysql_fetch_array( resource result, MYSQL_NUM ) 一致,请参考mysql_fetch_array() 函数用法,在此不在赘述。

mysql_fetch_object()
PHP 操作 MySQL 的函数 mysql_fetch_object() 用于从结果集中取得一行作为对象,成功返回一个对象,否则返回 FALSE 。
语法:

?
1
object mysql_fetch_object( resource result )

例子:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$conn = @mysql_connect( "localhost" , "root" , "root123" );
if (! $conn ){
  die ( "连接数据库失败:" . mysql_error());
}
 
mysql_select_db( "test" , $conn );
mysql_query( "set character set 'gbk'" );
 
$result = mysql_query( "SELECT uid,username FROM user" );
while ( $row = mysql_fetch_object( $result )){
  echo "用户ID:" . $row ->uid. "<br />" ;
  echo "用户名:" . $row ->username. "<br />" ;
}
?>

浏览器输出:

?
1
2
3
4
5
6
7
8
用户ID:1
用户名:admin
用户ID:2
用户名:小明
用户ID:3
用户名:Jack
用户ID:4
用户名:小王
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值