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

Rod*_*ing 5 php mysqli

它们是 mysqli_result 的两个函数。

  • fetch_array():获取结果行。

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

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

并且这样对数据库只查询一次?

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

放例子:

1.-fetch_array():

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

2.- fetch_all():

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

2.A.-

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

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

You*_*nse 1

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

所以应该是

$allUsers = getAllUsers($db);
Run Code Online (Sandbox Code Playgroud)

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

<?php foreach ($allUsers as $user) { ?>
    <?=$user['name']?>
>?} ?>
Run Code Online (Sandbox Code Playgroud)