mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别


Posted in PHP onApril 24, 2009
<?php 
$link=mysql_connect('localhost','root',”); 
mysql_select_db('abc',$link); 
$sql = “select * from book”; 
$result = mysql_query($sql); 
while($row = mysql_fetch_row($result)) 
{ 
echo $row['cid'].'::'.$row[1].'<br>'; 
} 
$result = mysql_query($sql); 
while($row = mysql_fetch_array($result)) 
{ 
echo $row['cid'].'::'.$row[1].'<br>'; 
} 
$result = mysql_query($sql); 
while($row = mysql_fetch_object($result)) 
{ 
echo $row->cid.'::'.$row->title.”<br>”; 
} 
$result = mysql_query($sql); 
while($row = mysql_fetch_assoc($result)) 
{ 
echo $row['cid'].'::'.$row[1].'<br>'; 
} 
?>

分析:
mysql_fetch_row,这个函数是从结果集中取一行作为枚举数据,从和指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中,偏移量从 0 开始。 注意,这里是从0开始偏移,也就是说不能用字段名字来取值,只能用索引来取值,所以如下代码是取不到值的:
while($row = mysql_fetch_row($res)){
echo $row['cid'].'::'.$row[1].”;
} //这里的$row['cid'] 取不到值。
mysql_fetch_array,从结果集中取得一行作为关联数组,或数字数组,或二者兼有,除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。 也就是说他得到的结果像数组一样,可以用key或者索引来取值,所以
while($row = mysql_fetch_array($res)){
echo $row['cid'].'::'.$row[1].”;
}//这里$row['cid'],$row[1]都能得到相应的值。
mysql_fetch_object,顾名思义,从结果集中取得一行作为对象,并将字段名字做为属性。所以只有这样才能取到值
while($row = mysql_fetch_object($res)){
echo $row->cid.'::'.$row->title.”";
}
mysql_fetch_assoc,从结果集中取得一行作为关联数组,也就是说这个函数不能像mysql_fetch_row那样用索引来取值,只能用字段名字来取,所以
while($row = mysql_fetch_assoc($res)){
echo $row['cid'].'::'.$row[1].”;
} //$row[1]这样是取不到值的
补充一点:
mysql_fetch_array函数是这样定义的:array mysql_fetch_array ( resource result [, int result_type]),返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。
mysql_fetch_array() 中可选的第二个参数 result_type 是一个常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。其中:
1、mysql_fetch_assoc($result)==mysql_fetch_array($result,MYSQL_ASSOC);
2、mysql_fetch_row($result)==mysql_fetch_array($result,MYSQL_NUM);
所以mysql_fetch_array()函数在某种程度上可以算是mysql_fetch_row()与 mysql_fetch_assoc()的集合。另外,mysql_fetch_array()另外还有MYSQL_BOTH参数,将得到一个同时包含关 联和数字索引的数组。
在来说句 $row = $db->fetch_array($query);
$db是人数据库操作类,$db->fetch_array($query),fetch_array($query)是那个db类里的方法,$row = $db->fetch_array($query)这句的意思是从记录集$query中得到数据库中的一行记录。
不用类可这样实现
$conn=@mysql_connect($host,$user,$pass); 
@mysql_select_db($database,$conn); 
$query=mysql_query($sql); 
while($row=mysql_fetch_array($query)){ 
$rows[]=$row; 
}
PHP 相关文章推荐
PHP在Web开发领域的优势
Oct 09 PHP
一个用php实现的获取URL信息的类
Jan 02 PHP
PHP连接access数据库
Mar 27 PHP
php防止恶意刷新与刷票的方法
Nov 21 PHP
php实现将数组转换为XML的方法
Mar 09 PHP
php结合安卓客户端实现查询交互实例
May 05 PHP
如何把php5.3版本升级到php5.4或者php5.5
Jul 31 PHP
CodeIgniter配置之autoload.php自动加载用法分析
Jan 20 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
Aug 11 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
PHP删除字符串中非字母数字字符方法总结
Jan 20 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
Mar 07 PHP
PHP 危险函数解释 分析
Apr 22 #PHP
php反弹shell实现代码
Apr 22 #PHP
将数组写入txt文件 var_export
Apr 21 #PHP
php 保留小数点
Apr 21 #PHP
PHP 中执行排序与 MySQL 中排序
Apr 21 #PHP
一个php导出oracle库的php代码
Apr 20 #PHP
php一句话cmdshell新型 (非一句话木马)
Apr 18 #PHP
You might like
codeigniter集成ucenter1.6双向通信的解决办法
2014/06/12 PHP
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
2013/08/07 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
JS版的date函数(和PHP的date函数一样)
2014/05/12 Javascript
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
AngularJS入门教程之控制器详解
2016/07/27 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
2016/12/30 Javascript
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
AngularJs点击状态值改变背景色的实例
2017/12/18 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
2019/01/03 Javascript
JS使用cookie保存用户登录信息操作示例
2019/05/30 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
2019/08/11 Javascript
你准备好迎接vue3.0了吗
2020/04/28 Javascript
[02:23]2018DOTA2亚洲邀请赛趣味视频——反应测试
2018/04/04 DOTA
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
Python 判断 有向图 是否有环的实例讲解
2018/02/01 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
Python3最长回文子串算法示例
2019/03/04 Python
python opencv实现证件照换底功能
2019/08/19 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
解决Python使用列表副本的问题
2019/12/19 Python
基于Python把网站域名解析成ip地址
2020/05/25 Python
收集的7个CSS3代码生成工具
2010/04/17 HTML / CSS
MySQL面试题
2014/01/12 面试题
ddl,dml和dcl的含义
2016/05/08 面试题
软件毕业生个人鉴定
2014/03/03 职场文书
私人房屋买卖协议书
2014/10/04 职场文书
教师工作态度自我评价
2015/03/05 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
详解如何用Python实现感知器算法
2021/06/18 Python