Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Redefinir a posição do cursor no PDO


AFAIK não há possibilidade de redefinir a posição do cursor com o PDO - isso pode ter algo a ver com a compatibilidade com alguns bancos de dados, que não suportam a redefinição de cursores internos.

Se você quiser iterar duas vezes sobre os resultados, busque-o no array e itere sobre este array:
<?php 
$results = $stmt->fetchAll();  
foreach($results as $row) {
    // first
}

foreach($results as $row) {
    // second
}

Editar Alguns bancos de dados suportam cursores roláveis. Para usar isso, adicione PDO::CURSOR_SCROLL sinalizar para prepare método (veja exemplos na página de documentação do PDOFetch ). Mas isso só adiciona a possibilidade de avançar ou retroceder, não retroceder completamente. Além disso, nem todos os bancos de dados suportam esse tipo de cursor (por exemplo, o MySQL não).