PHP で MySQLi 結果セットを効率的に反復処理する方法

DDD
リリース: 2024-11-23 04:04:17
オリジナル
1002 人が閲覧しました

How to Efficiently Iterate Through MySQLi Result Sets in PHP?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート