【问题标题】:mysql_fetch_row() vs mysql_fetch_assoc() vs mysql_fetch_array() [duplicate]mysql_fetch_row() vs mysql_fetch_assoc() vs mysql_fetch_array() [重复]
【发布时间】:2012-07-13 20:57:46
【问题描述】:

可能重复:
mysql_fetch_array, mysql_fetch_assoc, mysql_fetch_object

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

困惑之间

mysql_fetch_row()
mysql_fetch_assoc()
mysql_fetch_array()

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

【问题讨论】:

标签: mysql


【解决方案1】:

注意mysql_* 函数的使用被认为已弃用,您应该改用提供更好安全性和更多功能的函数,例如 @ 987654321@或PDO

这是什么?

您正在寻找mysql_fetch_assoc,,顾名思义,它将返回一个关联数组(列名作为键,值作为行值)。


不同的函数会返回什么?

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

  • mysql_fetch_row

    此函数将返回一行,其中值将按照 SQL 查询中定义的顺序出现,键的范围从 0 到比所选列数少一。

  • mysql_fetch_assoc

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

  • mysql_fetch_array

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

    建议使用_assoc_row

【讨论】:

  • 注意,所有这些函数在 mysqli API 中都有几乎相同的名称。因此,如果您切换,您不会失去任何东西或有太多需要重新学习的东西。
  • 干净简单。谢谢!
  • 根据PHP站点的说法,mysql_fetch_array和mysql_fetch_assoc都将被弃用,我不知道该笑还是该哭。
  • 如答案开头所述,mysql_* 函数已正式弃用。使用 MySQLi,这些函数的对应函数分别为 mysqli_fetch_rowmysqli_fetch_assocmysqli_fetch_array
【解决方案2】:

mysql_fetch_assoc 当您手动引用字段时。

mysql_fetch_row 当您将其用作list($a,$b,$c...) = ... 的一部分时

从不mysql_fetch_array

【讨论】:

  • 如果您提到为什么永远不会使用mysql_fetch_array,这将是一个更有帮助的答案(例如,性能影响、混合关联和非关联数组等)。
【解决方案3】:

mysql_fetch_assoc()

假设您的表有两列 id 和 name。你可以使用下面的sn -p -

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多