Mysql
 sql >> Base de données >  >> RDS >> Mysql

Ce résultat est un ensemble de résultats avant uniquement, l'appel de rewind() après avoir avancé n'est pas pris en charge - Zend

Vous recevez cette Exception car c'est un comportement attendu. Zend utilise PDO pour obtenir son Zend\Db\ResultSet\Resultset qui est retourné par Zend\Db\TableGateway\TableGateway . Les ensembles de résultats PDO utilisent un curseur avant uniquement par défaut, ce qui signifie que vous ne pouvez parcourir l'ensemble qu'une seule fois.

Pour plus d'informations sur les curseurs, consultez Wikipedia et ceci article.

En tant que Zend\Db\ResultSet\Resultset implémente le PHP Iterator vous pouvez extraire un tableau de l'ensemble en utilisant le Zend\Db\ResultSet\Resultset:toArray() ou en utilisant la méthode iterator_to_array() une fonction. Soyez prudent lorsque vous utilisez cette fonction sur des ensembles de données potentiellement volumineux ! L'une des meilleures choses à propos des curseurs est précisément qu'ils évitent de tout mettre en une seule fois, au cas où l'ensemble de données serait trop volumineux, il y a donc des moments où vous ne voudrez pas tout mettre dans un tableau à la fois.