首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql_fetch_array、mysql_fetch_assoc、mysql_fetch_object

mysql_fetch_array、mysql_fetch_assoc、mysql_fetch_object
EN

Stack Overflow用户
提问于 2009-10-08 18:04:19
回答 3查看 18.3K关注 0票数 18

这些函数都非常相似:

代码语言:javascript
复制
mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_object()

我最近开始使用mysql_fetch_object,因为我正在做更多的面向对象编程。

但是,人们对使用哪一个最好,为什么使用,以及它们最适合在哪种场景中使用有什么看法呢?

谢谢你的想法!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-08 10:43:22

mysql_fetch_array将为您提供一个可以作为键的数组:

如果使用

  • MYSQL_BOTH

  • 列名称,使用MYSQL_ASSOC --在本例中,如果使用MYSQL_NUM

,您将获得与使用

  • (取决于查询中列的顺序)相同的结果

获取按列名索引的结果可能是最有用的解决方案--至少更易于使用。

但是,在一种情况下,获取按select子句中字段的位置索引的结果是很有趣的:当您有几个列具有相同的名称或别名时。

在这种情况下,由于数组中不能有两个具有相同索引的条目,因此只能使用列名作为索引来访问其中一列。

对于具有相同名称的其他列,您必须使用数字索引。

这种情况可能是我使用mysql_fetch_array的唯一情况--我更喜欢在查询中使用别名,以避免这种情况--在我看来,这更清楚。

mysql_fetch_assoc将为您提供一个数组,其中列名作为键,数据作为值。

实际上,没什么好说的。

作为回报,mysql_fetch_object会给你一些对象。

mysql_fetch_assocmysql_fetch_object之间进行选择很可能取决于您开发应用程序的方式:如果到处都使用对象,那么第二种可能是最合适的。

如果使用数组作为数据容器,您可以只使用第一个。

票数 18
EN

Stack Overflow用户

发布于 2010-12-16 11:00:05

mysql_fetch_array()以关联数组和/或数字数组的形式获取结果行。它返回一个与读取的行相对应的字符串数组,如果没有更多的行,则返回FALSE。返回的数组类型取决于$result_type的定义方式。

通过使用MYSQL_NUM,您只能获得数字索引(如$row、$row1等),即数字数组。

通过使用MYSQL_ASSOC,您只能获得关联索引(如$row"id“、$row"name”等),即关联数组。

通过使用MYSQL_BOTH (默认),您将获得一个同时具有关联索引和数字索引的数组。(如$row、$row"name“等),即数字数组和关联数组。

mysql_fetch_assoc()以关联数组的形式获取结果行。(作为键的列名)。

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

它返回一个具有与所读取的行相对应的属性的对象,并将内部数据指针向前移动。

对我来说,使用mysql_fetch_assoc()有好处,因为您可以使用数组函数,如array_walk和uasort()。

票数 1
EN

Stack Overflow用户

发布于 2018-01-04 22:40:08

简要说明:

mysql_fetch_assoc():这会得到一个数据的关联数组。

mysql_fetch_array():这将返回一个组合数组,其中包含关联元素以及带有数值索引的数据。

mysql_fetch_object():返回一个对象,该对象具有与提取的行相对应的属性。

Source

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1536813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档