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经典的给图片加水印程序
Dec 06 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
Sep 06 PHP
Laravel 4 初级教程之视图、命名空间、路由
Oct 30 PHP
PHP封装的字符串加密解密函数
Dec 18 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
Mar 21 PHP
php ci 获取表单中多个同名input元素值的代码
Mar 25 PHP
laravel学习教程之关联模型
Jul 30 PHP
thinkPHP5.0框架API优化后的友好性分析
Mar 17 PHP
PHP+Session防止表单重复提交的解决方法
Apr 09 PHP
实例讲解PHP中使用命名空间
Jan 27 PHP
PHP生成短网址的思路以及实现方法的详解
Mar 25 PHP
在Laravel的Model层做数据缓存的实现
Sep 26 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
新版mysql+apache+php Linux安装指南
2006/10/09 PHP
PHP has encountered an Access Violation 错误的解决方法
2010/01/17 PHP
PHP is_dir() 判断给定文件名是否是一个目录
2010/05/10 PHP
PHP中数组的三种排序方法分享
2012/05/07 PHP
使用php记录用户通过搜索引擎进网站的关键词
2014/02/13 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
2014/09/09 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
Prototype 工具函数 学习
2009/07/23 Javascript
让JavaScript拥有类似Lambda表达式编程能力的方法
2010/09/12 Javascript
让ie6也支持websocket采用flash封装实现
2013/02/18 Javascript
js Array对象的扩展函数代码
2013/04/24 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
AngularJS中$apply方法和$watch方法用法总结
2016/12/13 Javascript
详解Vue中localstorage和sessionstorage的使用
2017/12/22 Javascript
关于Mac下安装nodejs、npm和cnpm的教程
2018/04/11 NodeJs
Node.js+ELK日志规范的实现
2019/05/23 Javascript
详解Vue中的自定义指令
2020/12/07 Vue.js
pandas.DataFrame.to_json按行转json的方法
2018/06/05 Python
Python实现读取机器硬件信息的方法示例
2018/06/09 Python
学习Python列表的基础知识汇总
2020/03/10 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
完美解决pycharm 不显示代码提示问题
2020/06/02 Python
Java中实现多态的机制
2015/08/09 面试题
情人节活动策划方案
2014/02/27 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
2014卖家双十一活动策划书
2014/09/29 职场文书
婚内分居协议书范文
2014/11/26 职场文书
寒假社会实践个人总结
2015/03/06 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
交心谈心活动总结
2015/05/11 职场文书
追悼会答谢词范文
2015/09/29 职场文书
如何用RabbitMQ和Swoole实现一个异步任务系统
2021/05/29 PHP
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript