首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysqli fetch_assoc诉fetch_array

Mysqli fetch_assoc诉fetch_array
EN

Stack Overflow用户
提问于 2014-01-26 08:10:46
回答 3查看 48.4K关注 0票数 22

当我从表中返回一行时,我通常使用以下方法来收集结果:

代码语言:javascript
复制
$info = $result->fetch_assoc(); 

两者之间的区别是什么?

代码语言:javascript
复制
$info = $result->fetch_array();

当只返回一行时,是否有理由使用一个而另一个,还是仅仅是个人偏好?

EN

回答 3

Stack Overflow用户

发布于 2015-01-08 19:29:35

fetch_array通过索引返回值。但是Fetch_assoc只返回这个值。

例如,fetch_array返回

代码语言:javascript
复制
[0] => 11
[id] => 11
[1] => 2014-12-29
[date] => 2014-12-29

在这里,数组位置0包含11,这个位置名也是'id‘。

同样的事情,fetch_assoc将返回

代码语言:javascript
复制
[id] => 11
[date] => 2014-12-29

意思就是只返回值。

票数 11
EN

Stack Overflow用户

发布于 2015-09-11 02:09:09

(PHP 5)来自:http://php.net/manual/en/mysqli-result.fetch-array.php

mysqli_result::fetch_array - mysqli_fetch_array --将结果行提取为关联数组、数字数组或两者兼有。

因此,fetch_array()fetch_assoc()实际上可以是等价的调用。至于性能,我建议使用任何一个调用,这些调用会产生更易读的代码,并且只会在您明确地将调用确定为性能问题之后才考虑性能。更有可能的是,在你最不希望它们出现的地方,你会遇到更严重的性能问题。

票数 3
EN

Stack Overflow用户

发布于 2018-04-04 15:07:14

fetch_array将为您提供键/值对和索引,其中fetch_assoc只给您键/值对,而不给索引。例如:

代码语言:javascript
复制
//fetch_array output be like:
[name]=>'someName'
[0]=>'someName'
[email]=>'some@some.com'
[1]=>'some@some.com'

//fetch_assoc output be like

[name]=>'someName'
[email]=>'some@some.com'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21361184

复制
相关文章

相似问题

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