首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用php进行mysql结果获取比较

问使用php进行mysql结果获取比较
EN

Stack Overflow用户
提问于 2009-09-09 21:28:24
回答 4查看 863关注 0票数 4

使用PHP从mysql数据库中获取数据哪个更好?为什么?

代码语言:javascript
复制
mysql_fetch_row() 
mysql_fetch_assoc() 
mysql_fetch_array()
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-09-09 22:21:56

mysql_fetch_row()它返回带有数字索引/键的数组。通常,与其他两种方法相比,它的速度更快。

mysql_fetch_assoc()它返回以列名作为键的数组。它比mysql_fetch_row()稍微慢一点。

它返回的mysql_fetch_array()实质上返回两个数组。一个具有基于关联的键索引,另一个具有数字索引。在不指定所需方法( MYSQL_NUM或MYSQL_ASSOC)的情况下,mysql_fetch_array()始终返回双精度数组。而且,与mysql_fetch_row()或mysql_fetch_assoc()相比,它的效率要低得多。您可以将结果类型设置为第二个参数。

我认为,实际上这些方法并没有显著的区别。

票数 4
EN

Stack Overflow用户

发布于 2009-09-09 21:38:13

实际上,它们都有不同的返回数据的方法,所以问题更像是“哪一个更适合你的需求”。

mysql_fetch_row()返回如下数组:

代码语言:javascript
复制
$row[0];

mysql_fetch_assoc():

代码语言:javascript
复制
$row["table_field"];

mysql_fetch_array():

代码语言:javascript
复制
$row[0];
// or
$row["table_field"];

这里最“重”的可能是fetch_array,因为它接受一个可选参数,用于指定您希望将数据作为关联键数组还是数字键数组返回。

还有这个:

mysql_fetch_object():

代码语言:javascript
复制
$row->table_field;

就我个人而言,我会根据自己的需要在每个查询中使用它们,但如果你在php中使用面向对象编程,最后一个选项可能是最好的。

票数 2
EN

Stack Overflow用户

发布于 2009-09-09 21:39:47

这取决于您希望如何访问行数据。

  • 如果要使用数值索引,请使用fetch_row
  • 如果要使用字段名称作为索引,请使用fetch_assoc

如果您不需要使用索引(例如,通过foreach传递行),或者您并不关心,那么使用fetch_row应该会产生稍微小一点的开销(尽管这是非常小的开销)。如果您没有偏好,则更喜欢使用字段名,因为这会使代码更容易阅读。

永远不要使用fetch_array,它本质上结合了fetch_row和fetch_assoc。同时使用数字和关联几乎肯定会使代码不那么清晰。(如果您提供的$result_type参数不是MYSQL_BOTH,则可以使用fetch_array,但您也可以使用适当的函数,因为您的代码将同样清晰,但更简洁)。

请注意,如果您确实希望使用字段名,请确保查询中没有两个同名的字段。如果这样做,则必须在查询中为该列提供别名(并在访问数组时将其用作字段名)

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

https://stackoverflow.com/questions/1402205

复制
相关文章

相似问题

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