ホームページ >データベース >mysql チュートリアル >mysqli_fetch_array() を繰り返し使用すると失敗するのはなぜですか? どうすれば修正できますか?

mysqli_fetch_array() を繰り返し使用すると失敗するのはなぜですか? どうすれば修正できますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-03 04:33:12897ブラウズ

Why Does mysqli_fetch_array() Fail on Repeated Use, and How Can I Fix It?

mysqli_fetch_array() のジレンマの解決

同じ結果セットに対して mysqli_fetch_array() を複数回使用しようとすると、データにアクセスできなくなる可能性があります。これは、mysqli_fetch_array() が結果を段階的に消費するために発生します。

データ操作の分離

この問題を回避するには、データ操作を出力から分離します。改善されたアプローチは次のとおりです。

1.データ選択

$db_res = mysqli_query($db_link, $sql);
$data = array();
while ($row = mysqli_fetch_array($db_res, MYSQLI_ASSOC)) {
    $data[] = $row;
}

または、PHP 5.3 の fetch_all() を使用します。

$db_res = mysqli_query($db_link, $sql);
$data = $db_res->fetch_all(MYSQLI_ASSOC);

このステップでは、結果セット全体を配列 $data に取得します。

2.データ使用量

これで、結果セットに影響を与えることなく $data を複数回繰り返すことができます。

最上位行

foreach ($data as $row) {

以上がmysqli_fetch_array() を繰り返し使用すると失敗するのはなぜですか? どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。