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(1)
Oct 09 PHP
Ajax PHP分页演示
Jan 02 PHP
用PHP与XML联手进行网站编程代码实例
Jul 10 PHP
PHP下对数组进行排序的函数
Aug 08 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
Mar 05 PHP
php目录操作实例代码
Feb 21 PHP
php定义参数数量可变的函数用法实例
Mar 16 PHP
php批量删除超链接的实现方法
Oct 19 PHP
PHP读取zip文件的方法示例
Nov 17 PHP
PHP 匿名函数与注意事项详细介绍
Nov 26 PHP
Yii2 批量插入、更新数据实例
Mar 15 PHP
关于php开启错误提示的总结
Sep 24 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通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
php的array_multisort()使用方法介绍
2012/05/16 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
php 数组元素快速去重
2017/05/05 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
srcElement表格样式
2006/09/03 Javascript
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
javascript Keycode对照表
2009/10/24 Javascript
js getElementsByTagName的简写方式
2010/06/27 Javascript
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
jQuery实现导航栏头部菜单项点击后变换颜色的方法
2017/07/19 jQuery
详解如何在angular2中获取节点
2017/11/23 Javascript
React-native桥接Android原生开发详解
2018/01/17 Javascript
除Console.log()外更多的Javascript调试命令
2018/01/24 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
vue自定义组件实现双向绑定
2021/01/13 Vue.js
python MySQLdb Windows下安装教程及问题解决方法
2015/05/09 Python
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
详解爬虫被封的问题
2019/04/23 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
如何用python免费看美剧
2020/08/11 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
房地产销售经理岗位职责
2014/01/01 职场文书
管理失职检讨书
2014/02/12 职场文书
2016春季校长开学典礼致辞
2015/11/26 职场文书
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python