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 Zip解压 文件在线解压缩的函数代码
May 26 PHP
PHP数组操作汇总 php数组的使用技巧
Jul 17 PHP
Zend studio文件注释模板设置方法
Sep 29 PHP
php 修改、增加xml结点属性的实现代码
Oct 22 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
Aug 20 PHP
php简单图像创建入门实例
Jun 10 PHP
php pthreads多线程的安装与使用
Jan 19 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
Mar 10 PHP
php实现基于openssl的加密解密方法
Sep 30 PHP
ThinkPHP实现附件上传功能
Apr 27 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
Jul 24 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 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入门学习的几个不错的实例代码
2008/07/13 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
php正则匹配html中带class的div并选取其中内容的方法
2015/01/13 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
PHP实现PDO操作mysql存储过程示例
2019/02/13 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
javascript html5摇一摇功能的实现
2016/04/19 Javascript
VUEJS实战之构建基础并渲染出列表(1)
2016/06/13 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
2020/06/05 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
JavaScript 实现继承的几种方式
2021/02/19 Javascript
[52:08]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第一局
2016/03/05 DOTA
采用python实现简单QQ单用户机器人的方法
2014/07/03 Python
Django实现分页功能
2018/07/02 Python
Python删除n行后的其他行方法
2019/01/28 Python
python pandas cumsum求累计次数的用法
2019/07/29 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
Python json读写方式和字典相互转化
2020/04/18 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
python绘制雷达图实例讲解
2021/01/03 Python
HTML5本地存储之IndexedDB
2017/06/16 HTML / CSS
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
澳大利亚运动鞋商店:Platypus Shoes
2019/09/27 全球购物
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
文明学生事迹材料
2014/01/29 职场文书
社区庆中秋节活动方案
2014/02/07 职场文书
聘用意向书范本
2014/04/01 职场文书
图书馆义工感想
2015/08/07 职场文书
python 中[0]*2与0*2的区别说明
2021/05/10 Python
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
2022/12/24 HTML / CSS