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

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

Barbara Streisand
Barbara Streisandオリジナル
2024-12-08 20:06:16871ブラウズ

How to Reset PDO Result Array Pointer for Multiple Iterations?

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

MySQL SELECT メソッドから PDO に移行する場合、各反復の開始時にフェッチされた配列を 2 回反復します。行 0 からは課題が生じます。 PDO には、MySQL の mysql_data_seek() 関数に相当する関数がありません。

次のアプローチの使用を検討してください:

  1. 結果を配列に保存:

    • PDO クエリを実行し、結果を保存します$stmt->fetchAll() を呼び出して配列に追加します。
  2. 配列を 2 回繰り返します:

    • 繰り返します$rows 配列を 2 回呼び出し、それぞれの中で必要な操作を実行します。 iteration.

例を次に示します。

$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();

foreach ($rows as $r) {
    // first run
}

foreach ($rows as $r) {
    // second run
}

このアプローチは、配列ポインターをリセットするという望ましい動作を効果的にシミュレートし、同じ結果に対する複数の反復を可能にします。設定します。

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

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