mysqlのSELECTメソッドからPDOメソッドへの移行に問題があります。フェッチされた配列を2回反復したいが、どちらも行ゼロで始まる。 mysqlで私は使用します:PDO結果の配列ポインタのリセット
mysql_data_seek($result,0);
私は同じことを達成する方法がわかりません。以下のコードは私がこれをやろうとしているところです。最初のwhileループは正常に動作しますが、2番目のwhileループは何も返しません。誰かが私がどこに間違っているのか教えてもらえますか?
$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();
while($row = $stmt->fetch())
{
//do something starting with row[0]
}
while($row = $stmt->fetch())
{
//do something else starting with row[0]
}
ありがとうございました。
うわー!それは明らかです。私がなぜwhileループを使用していたのか分かりません。頭の中でキックありがとう! – user1028866
[ドキュメント](http://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-use-buffered-query)を無視したためです。 – AnrDaemon
これは大きな結果セットを扱う際にはお勧めできません。すべてのデータは配列に格納されます。 –