ホームページ >データベース >mysql チュートリアル >複数回の反復のために PDO 結果セットの配列ポインタをリセットするにはどうすればよいですか?

複数回の反復のために PDO 結果セットの配列ポインタをリセットするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-01 22:10:12249ブラウズ

How to Reset the Array Pointer in PDO Result Sets for Multiple Iterations?

PDO 結果の配列ポインタのリセット

MySQL SELECT メソッドから PDO に移行する場合、フェッチされたものを反復処理するために配列ポインタのリセットが不可欠になります配列を複数回実行します。 MySQL にはこれを実現する mysql_data_seek() が用意されていますが、PDO には別のアプローチが必要です。

PDO で配列ポインタを正常にリセットするには、次の解決策を検討してください。

まず、結果セットを取得して、 fetchAll() メソッドを使用して配列を作成します。このメソッドは、すべての行を PHP 配列にフェッチします。その後、この配列を複数回反復処理して、各行のデータにアクセスして処理できます。

更新された例は次のとおりです:

$pdo = new PDO('mysql:host=' . $host . ';dbname='.$database, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $pdo->prepare('SELECT * FROM mytable WHERE active = 1 ORDER BY name ASC');
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();

$rows = $stmt->fetchAll(); // Saving results into an array

// First Iteration
foreach ($rows as $r) {
    // ...
}

// Second Iteration
foreach ($rows as $r) {
    // ...
}

この改訂されたアプローチにより、結果を反復処理できます。毎回最初の行から開始して複数回設定します。

以上が複数回の反復のために PDO 結果セットの配列ポインタをリセットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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