sql >> Database >  >> RDS >> Mysql

php do while werkt niet met next->rowset

Ik had hetzelfde probleem met PDO::nextRowset(), omdat het true retourneert, zelfs als er geen rijensets meer beschikbaar zijn, daarom roept het bij het aanroepen van fetchAll() de uitzondering HY000 op. (getest op PHP 5.5.12 windows, Mysql 5.5.17 linux)

Een tijdelijke oplossing voor dit probleem is om het aantal kolommen te controleren met de methode PDO::columnCount() voordat u rijenset ophaalt. Als het niet-nul is, hebt u een geldige rijenset en kunt u dus PDO::fetchAll() aanroepen.

Zelfs als PDO::nextRowset() true rapporteert, zal columnCount() het aantal kolommen rapporteren voordat het naar de volgende rijenset gaat.

Voorbeeld:

while ($objQuery->columnCount()) {
    $tab[] = $objQuery->fetchAll(\PDO::FETCH_ASSOC);
    $objQuery->nextRowset();
}


  1. De laatst ingevoegde ID ophalen met expressie in mysql

  2. Bedankt, Amazon, voor het inspireren van ons om een ​​betere DBaaS te leveren:SkySQL

  3. Laravel 5:controleer of de gebruiker tot de moderatorslijst behoort voordat je hem toestaat om te bewerken

  4. Probleem met een kolomnaam bevat een dubbele punt in PostgreSQL