1. ホーム
  2. php

[解決済み] fetch_array(MYSQLI_ASSOC) と fetch_all(MYSQLI_ASSOC) のどちらを使用するのが良いですか?

2022-02-11 16:25:32

質問事項

mysqli_resultの2つの関数です。

  • 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>";
}

もっと良い方法があれば、ご教授いただければ幸いです。

どのように解決するのですか?

あなたの特定のケースでは、getAllUsers()という関数がmysqliの結果ではなく、すべてのユーザーを取得する必要があるため、fetch_all()を内部に移動させる必要があります。

つまり、次のようになります。

$allUsers = getAllUsers($db);

に送られ、$allUsersが テンプレート のような出力になります。

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