它们是 mysqli_result 的两个函数。
这样,查询到数据库的每一行?
并且这样对数据库只查询一次?
我不知道如何以最好的方式和最有效的方式做到这一点。
放例子:
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)
如果有更好的方法,我希望你的帮助。
对于您的特定情况,您需要将 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)