sql >> Database teknologi >  >> RDS >> Mysql

PDOStatement::nextRowSet() er brudt i MySQL 5.6.16 på Windows

Jeg havde samme problem med PDO::nextRowset(), da det returnerer sandt, selv om der ikke er flere rækkesæt tilgængelige, derfor rejser det undtagelsen HY000, når man kalder fetchAll(). (testet på PHP 5.5.12 windows, Mysql 5.5.17 linux)

En løsning på dette problem er at kontrollere antallet af kolonner med metoden PDO::columnCount(), før rækkesættet hentes. Hvis det ikke er nul, har du et gyldigt rækkesæt, og du kan derfor kalde PDO::fetchAll().

Selvom PDO::nextRowset() rapporterer sandt, vil columnCount() rapportere antallet af kolonner, før det går til næste rækkesæt.

Eksempel:

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


  1. Brug tekst fra post til at indsætte i en Access-formularkontrolboks

  2. PLpgSQL-funktion til at finde kolonner med kun NULL-værdier i en given tabel

  3. Hvorfor fungerer min hvis-erklæring ikke som jeg forventer?

  4. Hvad er en funktion med tabelværdi i SQL Server?