MySQLi 結果セットの反復
PHP では、mysqli_query() メソッドを使用して MySQL クエリの結果の反復を実現できます。
クエリの結果セットをループするには、select uid from userbase では、次のループを使用できます。
$output = mysqli_query($mysqli, "select uid from userbase"); foreach ($output as $row) { echo $row['uid']; }
このループは、結果セット内の各行の uid 値を正しく取得して表示します。これは、手続き型構文よりも簡潔で効率的な MySQLi のオブジェクト指向構文を利用します。
潜在的なエラー
コード内で発生したエラーは次のようなものである可能性があります。インデックス付きキーと連想キーの両方を含む結果セットを生成するデフォルトの動作で fetch_array() を使用したことが原因で発生します。 (MYSQLI_BOTH)。これを修正するには、MYSQLI_ASSOC または MYSQLI_NUM を fetch_array() の 2 番目の引数として使用して、目的の動作を指定できます。
あるいは、mysqli_query() を反復可能なオブジェクトとして使用して、fetch_array() の使用を完全に回避することもできます。反復ごとに fetch_array() を呼び出す必要があるrow.
反復の修正
指定したコードには、間違った反復スキームも含まれています。インデックス 0 で始まる結果セットの後続の行にアクセスするには、ループ内で $i 変数をインクリメントする必要があります。
したがって、fetch_array() を使用した正しい反復は次のようになります。
$i = 0; $output = mysqli_query($mysqli, "select uid from userbase"); while ($row = $output->fetch_array(MYSQLI_ASSOC)) { echo $row['uid']; $i++; }
以上がPHP で MySQLi 結果セットを効率的に反復処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。