Tengo problemas para pasar de los métodos SELECT de mysql a los métodos de PDO. Quiero iterar dos veces a través de una matriz extraída, ambas veces comenzando con la fila cero. En mysql usaría:Restablecer el puntero de matriz en los resultados de PDO
mysql_data_seek($result,0);
Utilizando métodos PDO, no estoy seguro de cómo lograr lo mismo. El siguiente código es como trato de hacer esto. El primer ciclo while funciona bien, pero el segundo ciclo while no devuelve nada. ¿Puede alguien decirme por favor dónde me estoy equivocando?
$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]
}
Gracias por su ayuda.
Wow! Eso parece obvio. No sé por qué me quedé atrapado usando un ciclo while. Gracias por el puntapié en la cabeza! – user1028866
Porque ignoró [la documentación] (http://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-use-buffered-query). – AnrDaemon
Esto no es una buena idea cuando se trabaja con un gran conjunto de resultados. Todos los datos serán almacenados en una matriz. –