mysql_fetch_array,mysql_fetch_assoc,mysql_fetch_ob

2019-07-21 10:06发布

这些功能都非常相似:

mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_object()

使用mysql_fetch_object因为我用PHP做很多更OOP我最近已经开始。

但什么是人民的意见在哪一个是最好用,为什么,也许他们是最好使用哪种方案。

感谢您的想法!

Answer 1:

mysql_fetch_array将让你的数组,可以有任意键:

  • 数字和,列的名称,如果使用MYSQL_BOTH
  • 列名,使用MYSQL_ASSOC -在这种情况下,你会得到你使用时,得到同样的事情mysql_fetch_assoc
  • 只有数字(取决于列的查询的数量级上),如果使用MYSQL_NUM

过得去列名索引的结果可能是最有用的解决方案 - 易于使用,至少。

但要由SELECT子句中的字段的位置索引的结果是在一个situtation有趣:当你有一个具有相同的名称或别名多列。
在这种情况下,你不能有两个条目在一个阵列相同的索引,你将能够访问仅使用列名作为索引这些列中的一个。
对于具有相同名称的其他列,你将不得不使用数字索引。

这种情况可能是针对我会使用的唯一情况mysql_fetch_array -我宁可选择使用化名在我的查询,以避免这种情况-它更清楚,在我看来。


mysql_fetch_assoc将让你的数组,其中列名作为键和数据值。

不多说了,其实。


mysql_fetch_object将让你objetcs的回报。


之间进行选择mysql_fetch_assocmysql_fetch_object最有可能取决于你如何开发应用程序:如果使用对象无处不在,第二个可能是最合适的。

如果使用数组作为数据的容器,你可以去的第一个。



Answer 2:

mysql_fetch_array()取入结果一行作为关联阵列,数字数组,或两者。 如果没有更多的行,它返回一个字符串数组对应于所提取的行,或FALSE。 该类型返回数组的依赖于$ result_type的是如何定义的。

通过使用MYSQL_NUM,你只能得到一些指数(如$行[0],$行1等),即数字阵列。

通过使用MYSQL_ASSOC,你只得到关联索引(如$行[“身份证”],$行[“名称”],等等),即关联数组。

通过使用MYSQL_BOTH(默认),你会得到与两个关联和数字索引。 (如$行[0],$行[ “名称”],等),即,两个数字阵列和关联数组。

mysql_fetch_assoc()获取的结果一行作为关联阵列。 (列名键)。

mysql_fetch_object()获取的结果行作为对象。

它返回具有对应于所提取的行属性的对象,并移动内部数据指针前进。

对我来说,有使用mysql_fetch_assoc()中,你可以使用数组功能,比如array_walk和uasort()的adantages。



Answer 3:

简短的介绍:

mysql_fetch_assoc():这个让你的数据的关联数组。

mysql_fetch_array():这个返回关联元件的组合阵列以及与数值索引数据。

mysql_fetch_object():返回与对应于所提取的行属性的对象。

资源



Answer 4:

假设我们有如下表

Name      CountryCode
-----     ----------
Bangladesh  BD
Pueblo     USA
Arvada     USA

$查询=“选择名称,COUNTRYCODE从一个城市”;

$结果= mysqli_query($连接,$查询)

  1. mysqli_fetch_object(数据可以取为对象)

      while ($obj = mysqli_fetch_object($result)) { printf ("%s (%s)\n", $obj->Name, $obj->CountryCode); } 
  2. mysqli_fetch_assoc(取为关联数组即键)

    while ($row = mysqli_fetch_assoc($result)) { printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]); }

  3. mysqli_fetch_array(数值及缔合二者)

    while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) { printf("%s (%s)\n", $row[0], $row[1]); }

    while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { printf("%s (%s)\n", $row["Name"], $row["CountryCode"]); }



文章来源: mysql_fetch_array, mysql_fetch_assoc, mysql_fetch_object