它们是mysqli_result的两个功能。
这样,查询数据库的每一行?
这样,只对数据库进行一次查询?
我不知道如何以最好的方式和最有效的方式做到这一点。
举例:
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>";
}
如果有更好的方法,我希望你的帮助。
答案 0 :(得分:0)
对于您的特定情况,您需要在内部移动fetch_all(),因为一个名为getAllUsers()的函数应该为您提供所有用户,而不是mysqli结果。
所以它应该是
$allUsers = getAllUsers($db);
然后将$ allUsers发送到模板以获取输出,如
<?php foreach ($allUsers as $user) { ?>
<?=$user['name']?>
>?} ?>
答案 1 :(得分:0)
考虑这不是什么大问题。您可以根据您的使用案例选择其中任何一个。可用性。
但毕竟,请尽快迁移到 PDO PHP Data Objects 。在PHP 7.0中完全删除了mysql * _functions&amp;其中大多数在PHP 5.5中被认为已弃用。