什么是最好使用,fetch_array(MYSQLI_ASSOC)或fetch_all(MYSQLI_ASSOC)?

时间:2017-02-28 11:39:34

标签: php mysqli

它们是mysqli_result的两个功能。

  • fetch_array():获取结果行。

这样,查询数据库的每一行?

  • fetch_all():获取所有结果行。

这样,只对数据库进行一次查询?

我不知道如何以最好的方式和最有效的方式做到这一点。

举例:

1-fetch_array():

$resultUsers = getAllUsers($db);
while($row = $resultUsers->fetch_array()){
     echo $row['name'];
}

2.- fetch_all():

$resultUsers = getAllUsers($db);
foreach ($resultUsers->fetch_all(MYSQLI_ASSOC) as $value) {
    echo $value['name'] . "<br>";
}

2.A .-

foreach (getAllUser($db)->fetch_all(MYSQLI_ASSOC) as $value) {
    echo $value['name'] . "<br>";
}

如果有更好的方法,我希望你的帮助。

2 个答案:

答案 0 :(得分:0)

对于您的特定情况,您需要在内部移动fetch_all(),因为一个名为getAllUsers()的函数应该为您提供所有用户,而不是mysqli结果。

所以它应该是

$allUsers = getAllUsers($db);

然后将$ allUsers发送到模板以获取输出,如

<?php foreach ($allUsers as $user) { ?>
    <?=$user['name']?>
>?} ?>

答案 1 :(得分:0)

考虑这不是什么大问题。您可以根据您的使用案例选择其中任何一个。可用性。

Check this out.

但毕竟,请尽快迁移到 PDO PHP Data Objects 。在PHP 7.0中完全删除了mysql * _functions&amp;其中大多数在PHP 5.5中被认为已弃用。