mysql_fetch_row()vs mysql_fetch_assoc()vs mysql_fetch_array()

时间:2012-07-14 01:01:11

标签: mysql

  

可能重复:
  mysql_fetch_array, mysql_fetch_assoc, mysql_fetch_object

我想要一个函数,它可以将结果集当前行中的字段返回到关联数组中,并将结果指针移动到下一行。

混淆

mysql_fetch_row()
mysql_fetch_assoc()
mysql_fetch_array()

我应该使用哪一个?任何帮助,将不胜感激。  谢谢。

3 个答案:

答案 0 :(得分:49)

  

注意mysql_*函数的使用被视为已弃用,您应该使用提供更好安全性和更多功能的内容,例如作为MySQLiPDO

这是什么?

您正在寻找mysql_fetch_assoc,,因为名称意味着它将返回一个关联数组(列名为键,值为行值)。


不同的功能会返回什么?

所有提到的函数都将返回一个数组,它们之间的区别在于返回对象中用作键的值。

  • <强> mysql_fetch_row

    此函数将返回一行,其中值将按SQL查询中定义的顺序排列,并且键将从0跨越至少于所选列数的一个。

  • <强> mysql_fetch_assoc

    此函数将返回一行作为关联数组,其中列名称将是存储相应值的键。

  • <强> mysql_fetch_array

    此函数实际上将返回一个数组,其中mysql_fetch_rowmysql_fetch_assoc的内容合并为一个。它将具有数字字符串键,可让您以最简单的方式访问数据。

    建议使用_assoc_row

答案 1 :(得分:7)

手动引用字段时

mysql_fetch_assoc

mysql_fetch_row当您将其用作list($a,$b,$c...) = ...

的一部分时

从不mysql_fetch_array

答案 2 :(得分:2)

mysql_fetch_assoc()

假设您的表有两列id和name。您可以使用以下代码段 -

while ($row = mysql_fetch_assoc($result)) {
    echo $row["id"];
    echo $row["name"];
}