php有4个函数可以从mysql的查询结果集中返回数据,它们分别是mysql_fetch_row、mysql_fetch_assoc、mysql_fetch_array、mysql_fetch_object,下面结合实例详细讲解下各自的功能以及区别;
1、mysql_fetch_row:从结果集中取得一行作为枚举数组,每个结果的列储存在一个数组单元中,偏移量从0开始,直到没有行时返回false;注意:只能用索引取得值,而不能用字段名取值;
- $result = mysql_query("SELECT id,name FROM mytable WHERE id=20");
- $row = mysql_fetch_row($result); //从查询结果集返回一行数据
- echo $row[0]; // 20
- echo $row['id'] // 无值
2、mysql_fetch_assoc:从结果集中取得一行作为关联数组,每个结果列储存在一个数组单元中,数组键值用字段表示,直到没有行时返回false;注意:只能用字段名取值,而不能用索引,取值时字段是区分大小写的;
PHP代码- $result = mysql_query("SELECT id,name FROM mytable WHERE id=20");
- $row = mysql_fetch_assoc($result); //从查询结果集返回一行数据
- echo $row[0]; // 无值
- echo $row['ID'] // 无值
- echo $row['id'] // 20
3、mysql_fetch_array:从结果集中取得一行作为关联数组,或者枚举数组,或者两者都有,直到没有行时返回false;这意味着我们可以用字段取得值,也可以用索引取值;其效率跟mysql_fetch_row相差无几,取值时字段也是区别大小写的;
PHP代码- $result = mysql_query("SELECT id,name FROM mytable WHERE id=20");
- $row = mysql_fetch_array($result); //从查询结果集返回一行数据
- echo $row[0]; // 20
- echo $row['id'] // 20
4、mysql_fetch_object:从结果集中取得一行作为对象,直到没有行时返回false;
PHP代码- $result = mysql_query("SELECT id,name FROM mytable WHERE id=20");
- $row = mysql_fetch_object($result); //从查询结果集返回一行数据
- echo $row[0]; // 无值
- echo $row['id'] // 无值
- echo $row->id //20
总结:
这4个函数效率相差无几,选择自己喜欢的就行,通常用mysql_fetch_array既可以用索引取值,也可以用字段取值。