25

可能重复:
mysql_fetch_array、mysql_fetch_assoc、mysql_fetch_object

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

迷茫之间

mysql_fetch_row()
mysql_fetch_assoc()
mysql_fetch_array()

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

4

3 回答 3

52

注意:这些mysql_*函数的使用被认为已弃用,您应该改用提供更好安全性和更多功能的东西,例如MySQLiPDO

它是什么?

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


不同的函数会返回什么?

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

  • mysql_fetch_row

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

  • mysql_fetch_assoc

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

  • mysql_fetch_array

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

    It is recommended to use either _assoc or _row though.

于 2012-07-14T01:04:58.317 回答
8

mysql_fetch_assoc when you are manually referring to the fields.

mysql_fetch_row when you are using it as part of a list($a,$b,$c...) = ...

Never mysql_fetch_array.

于 2012-07-14T01:27:32.207 回答
2

mysql_fetch_assoc()

Say your table has two columns id and name. You can use the following snippet -

while ($row = mysql_fetch_assoc($result)) {
    echo $row["id"];
    echo $row["name"];
}
于 2012-07-14T01:08:09.353 回答