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 相关文章推荐
新浪微博API开发简介之用户授权(PHP基础篇)
Sep 25 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
Dec 07 PHP
探讨PHP删除文件夹的三种方法
Jun 09 PHP
php调用Google translate_tts api实现代码
Aug 07 PHP
phpstrom使用xdebug配置方法
Dec 17 PHP
php实现的Timer页面运行时间监测类
Sep 24 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
Nov 03 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
Dec 10 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
Feb 08 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
Laravel 6.2 中添加了可调用容器对象的方法
Oct 22 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
PHP 网页过期时间的控制代码
2009/06/29 PHP
用PHP ob_start()控制浏览器cache、生成html实现代码
2010/02/16 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
2020/05/15 PHP
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
浅析jQuery1.8的几个小变化
2013/12/10 Javascript
node.js中的path.normalize方法使用说明
2014/12/08 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
javascript中apply、call和bind的使用区别
2016/04/05 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
Canvas 绘制粒子动画背景
2017/02/15 Javascript
JavaScript实现移动端轮播效果
2017/06/06 Javascript
详解webpack 多页面/入口支持&amp;公共组件单独打包
2017/06/29 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
node+express框架中连接使用mysql(经验总结)
2018/11/10 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
JS实现按比例缩小图片宽高
2020/08/24 Javascript
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
python 生成目录树及显示文件大小的代码
2009/07/23 Python
浅谈django的render函数的参数问题
2018/10/16 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
2019/02/19 Python
详解python读取image
2019/04/03 Python
python中几种自动微分库解析
2019/08/29 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
python打包生成so文件的实现
2020/10/30 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
2021/02/22 Python
来自美国主售篮球鞋的零售商店:KICKSUSA
2017/11/28 全球购物
怎样声明子类
2013/07/02 面试题
UNIX操作系统结构由哪几部分组成
2016/02/17 面试题
成语的广告词
2014/03/19 职场文书
交通事故协议书范文
2014/04/16 职场文书
中班幼儿评语大全
2014/04/30 职场文书
公司员工安全协议书
2014/11/21 职场文书
同学聚会感言一句话
2015/07/30 职场文书
Mysql 如何合理地统计一个数据库里的所有表的数据量
2022/04/18 MySQL