PDO 結果の配列ポインタの管理
MySQL から PDO に移行する場合、結果内を移動するための配列ポインタの処理は困難な場合があります。フェッチされた配列を毎回行 0 から開始して効果的に複数回反復するには、次の手法を検討してください。
PDO は、配列ポインターをリセットするための MySQL mysql_data_seek() 関数と直接同等のものを提供しません。ただし、取得した結果を配列に保存し、必要に応じて何度でも繰り返すことができます。
このアプローチを示す更新されたコード スニペットを次に示します。
$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 of the loop, starting from row zero } foreach ($rows as $r) { // Second run of the loop, starting from row zero again }
結果を保存することによって$rows 配列に追加すると、それを個別に複数回反復処理して、各ループが行 0 から始まるようにすることができます。
以上がMySQL の結果を取得した後に PDO で配列ポインタをリセットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。