一直以来,有很多初学者搞不懂这些Mysql中从查询结果集中取得数据的函数之间有什么区别,今天我就来秀一把,在秀之前先给大家一段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].'
';

}

$result = mysql_query($sql);

while($row = mysql_fetch_array($result))

{

echo $row['cid'].'::'.$row[1].'
';

}

$result = mysql_query($sql);

while($row = mysql_fetch_object($result))

{

echo $row->cid.'::'.$row->title.”
”;

}

$result = mysql_query($sql);

while($row = mysql_fetch_assoc($result))

{

echo $row['cid'].'::'.$row[1].'
';

}

?>

分析:

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;

}

sql mysql assoc和row_mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别相关推荐

  1. mysqli mysql assoc,mysqli中的mysql_fetch_assoc?

    在你创建了与mysql的连接之后,这很简单: // create the connection to mysql. $mysqli = new mysqli('localhost', 'my_user ...

  2. mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别

    <?php $link=mysql_connect('localhost','root',"); mysql_select_db('abc',$link); $sql = " ...

  3. 【转】mysql_fetch_row , mysql_fetch_array , mysql_fetch_assoc 的区别

    <?php $link = mysql_connect('localhost', 'root', "); mysql_select_db('abc', $link); $sql = & ...

  4. SQL/MYSQL在CMD命令操作符中创建数据库 、表单并插入数据查看

    SQL/MYSQL数据库 .表单.创建 首先确定你已经安装好了MySQL并且已经配置完毕 ①进入MySQL工作区 方法一找到程序进入并且输入MySQL密码: 方法二: window+r 输入cmd 进 ...

  5. SQL—MySQL基础教程(新手向)

    SQL-MySQL基础教程(新手向) 前言 一.数据库 1.概念 2.分类 二.MySQL基本概念 1.概念 2.安装 3.启动关闭连接 4.操作数据库 5.变量类型 6.字段属性 7.表 三.MyS ...

  6. rlm sql mysql.so_找了好久,终于找到一篇关于FREERADIUS新版的安装说明。和以前的1.X.X还是有很大不同的。...

    一.安装openssl 二.安装mysql 直接用命令#yun groupinstall "MySQL Database"安装MySQL数据库. 安装好后,#service mys ...

  7. mysql 如何优化sql语句,如何优化SQL?MySQL中超实用的SQL语句送给大家

    如何优化SQL?MySQL中超实用的SQL语句送给大家 如何优化SQL?MySQL中超实用的SQL语句送给大家 在写SQL时,经常灵活运用一些SQL语句编写的技巧,可以大大简化程序逻辑.减少程序与数据 ...

  8. php中mysql函数和mysqli函数的用法区别

    今天下着断断续续的小雨,我的心情也甚是阴郁.程序又总是出问题. PHP连接数据库的语句运行时总是会显示"mysql_connect(): The mysql extension is dep ...

  9. MySQL存储引擎中MyISAM和InnoDB区别

    转载自  MySQL存储引擎中MyISAM和InnoDB区别 MyISAM 和InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应 ...

最新文章

  1. Oracle笔记(中) 多表查询
  2. Docker基本命令与使用 —— Docker容器(一)
  3. 【BZOJ2797】[Poi2012]Squarks 暴力乱搞
  4. python_base_while循环、for循环
  5. 空间谱专题10:MUSIC算法
  6. 【转】sqlserver游标概念与实例全面解说
  7. MongoClient类参考文档
  8. SpringBoot项目打成War包??
  9. 6年前的Dubbo,2年前的Spring Cloud,都被这个架构干掉了
  10. 【Oracle】回收站
  11. 对抗生成网络(Generative Adversarial Network, GAN)
  12. @PropertySource 解析 yml 配置文件,自定义解析 yaml 工厂类
  13. 侧信道实验实验三 S盒CPA侧信道攻击
  14. 求解二次规划问题——外点罚函数法/内点罚函数法
  15. 雷霄骅---巨星陨落
  16. 名字作诗,拯救诗歌的最后一根稻草
  17. 千帆竞发待东风――乱弹网络游戏广告
  18. 学习笔记---高等数学前置知识---约分、通分
  19. 厦门大学信息学院夏令营经历
  20. 计算机主机启动不了系统安装系统安装软件,电脑主机启动不了怎么办

热门文章

  1. linux无密码ssh,scp,rsync
  2. java 中方法的使用,两个实例教你学会java中方法的使用
  3. Unity开发《一起来捉妖》教程 | 4.抛掷封妖灵珠
  4. ShadeGraph教程之节点详解5:Math Nodes
  5. OpenCV基本函数使用--Python
  6. android java写文件_Android中文件的读写(一)----流操作
  7. docker学习记录
  8. 关系数据库查看器应用程序-ASP.NET Core
  9. python3怎么使用mnist_loader_Python读取mnist
  10. 通过nginx反向代理解决跨域