ホームページ > バックエンド開発 > PHPチュートリアル > 同じ結果セットに対して mysqli_fetch_array() を複数回再利用できますか?

同じ結果セットに対して mysqli_fetch_array() を複数回再利用できますか?

Patricia Arquette
リリース: 2024-11-02 14:48:03
オリジナル
1007 人が閲覧しました

Can You Reuse mysqli_fetch_array() Multiple Times on the Same Result Set?

同じ結果に対して mysqli_fetch_array() を複数回使用する方法

データベース駆動型アプリを操作する場合、多くの場合、反復処理が必要になります。返されたデータ行。 MySQL では、mysqli_fetch_array() 関数はクエリ結果からデータを抽出する際に重要な役割を果たします。ただし、mysqli_fetch_array() を使用して同じ結果セットに複数回アクセスしようとすると、一般的な問題が発生し、予期しない動作が発生します。

この問題の理由は、mysqli_fetch_array() の動作に起因します。呼び出しごとに、結果セット内のカーソルが次の行に移動します。したがって、同じ結果に対してこれを 2 回使用すると、最初の 2 行にしかアクセスできなくなります。この制限を克服するには、データ操作を出力から分離する必要があります。

1.データのキャプチャ:

最初のステップでは、すべてのデータを配列に抽出します:

<code class="php">$db_res = mysqli_query( $db_link, $sql );
$data = array();
while ($row = mysqli_fetch_assoc($db_res))
{
    $data[] = $row;
}</code>
ログイン後にコピー

または、PHP 5.3 の fetch_all() メソッドを使用します:

<code class="php">$db_res = mysqli_query( $db_link, $sql );
$data   = $db_res->fetch_all(MYSQLI_ASSOC);</code>
ログイン後にコピー

2.データを複数回利用する:

配列にキャプチャしたら、それを複数回反復処理して、すべての行へのアクセスを保証できます:

<code class="php">// Top row
foreach ($data as $row)
{</code>
ログイン後にコピー

以上が同じ結果セットに対して mysqli_fetch_array() を複数回再利用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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