mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc相同点是
这三个函数都是用来取数据的。先来看看mysql手册中对这三个函数的描述
array mysql_fetch_row ( resource result )
返回根据所取得的行生成的数组,如果没有更多行则返回 FALSE。
mysql_fetch_row() 从和指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中,偏移量从 0 开始。
依次调用 mysql_fetch_row() 将返回结果集中的下一行,如果没有更多行则返回 FALSE。
注: 本函数返回的字段名是区分大小写的。
array mysql_fetch_array ( resource result [, int result_type] )
返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。
mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。
如果结果中的两个或以上的列具有相同字段名,最后一列将优先。要访问同名的其它列,必须用该列的数字索引或给该列起个别名。对有别名的列,不能再用原来的列名访问其内容(本例中的 'field')。
array mysql_fetch_assoc ( resource result )
返回根据从结果集取得的行生成的关联数组,如果没有更多行则返回 FALSE。
mysql_fetch_assoc() 和用 mysql_fetch_array() 加上第二个可选参数 MYSQL_ASSOC 完全相同。它仅仅返回关联数组。这也是 mysql_fetch_array() 起初始的工作方式。如果在关联索引之外还需要数字索引,用 mysql_fetch_array()。
如果结果中的两个或以上的列具有相同字段名,最后一列将优先。要访问同名的其它列,要么用 mysql_fetch_row() 来取得数字索引或给该列起个别名。参见 mysql_fetch_array() 例子中有关别名说明。
有一点很重要必须指出,用 mysql_fetch_assoc() 并不明显 比用 mysql_fetch_row() 慢,而且还提供了明显更多的值。
注: 本函数返回的字段名是区分大小写的。
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc不同点是
mysql_fetch_row返回的结果集只能是以0,1,2,3...这种数据索引的方式来读取数据,
mysql_fetch_array返回的结果集是既有0,1,2,3这种数字下标,也有以你表字段为名子的key
mysql_fetch_assoc返回的结果集只能以key为数组下标,
从功能上说就像是mysql_fetch_row加上mysql_fetch_assoc等于mysql_fetch_array