Mysqli fetch_assoc 与 fetch_array

2021-12-25 00:00:00 php mysqli

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

When I'm returning one row from a table, to gather the results I usually use e.g.:

$info = $result->fetch_assoc(); 

那和有什么区别:

$info = $result->fetch_array();

当只返回一行时,是否有理由使用一个而不是另一个,或者只是个人喜好?

Is there a reason to use one over the other when returning only one row, or is it just personal preference?

推荐答案

一切都与性能有关

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

fetch_array() returns one array with both numeric keys, and associative strings (column names), so here you can either use $row['column_name'] or $row[0]

其中 fetch_assoc() 将返回字符串索引键数组,而没有数字数组,因此您将无法选择使用像 $row[0] 这样的数字键.

Where as fetch_assoc() will return string indexed key array and no numeric array so you won't have an option here of using numeric keys like $row[0].

所以后者在性能上比 fetch_array() 更好,显然使用命名索引比数字索引好得多.

So the latter one is better in performance compared to fetch_array() and obviously using named indexes is far better compared to numeric indexes.

相关文章