ホームページ >データベース >mysql チュートリアル >mysqli_fetch_array() を繰り返し使用すると失敗するのはなぜですか? どうすれば修正できますか?
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 サイトの他の関連記事を参照してください。