Mysqli fetch_assoc vs fetch_array

Dar*_*ney 11 php mysqli

当我从表中返回一行时,为了收集我通常使用的结果,例如:

$info = $result->fetch_assoc(); 
Run Code Online (Sandbox Code Playgroud)

它和之间有什么区别:

$info = $result->fetch_array();
Run Code Online (Sandbox Code Playgroud)

当只返回一行时,是否有理由使用其中一个,或者仅仅是个人偏好?

Mr.*_*ien 25

这完全取决于性能

fetch_array()返回一个包含数字键和关联字符串(列名)的数组,所以在这里你可以使用$row['column_name']$row[0]

where fetch_assoc()将返回字符串索引键数组而没有数字数组,所以你不会在这里使用像数字键这样的选项$row[0].

因此,fetch_array()与数字索引相比,后者的性能更好,并且显然使用命名索引要好得多.

  • _显然,与数字索引相比,使用命名索引要好得多_:这是个人观点,而不是事实。通常这是正确的,但是在某些情况下处理编号列更容易。例如,如果 SQL 命令是自动生成的。 (2认同)

小智 9

fetch_array使用索引返回值.但是Fetch_assoc只返回该值.

例如fetch_array返回

[0] => 11
[id] => 11
[1] => 2014-12-29
[date] => 2014-12-29
Run Code Online (Sandbox Code Playgroud)

这里的数组位置0包含11,这个位置名称也是'id'.

同样的事情fetch_assoc将返回

[id] => 11
[date] => 2014-12-29
Run Code Online (Sandbox Code Playgroud)

意味着只返回值.