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

php do while virker ikke med næste->rækkesæt

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. En underforespørgsel, der skal være uafhængig, er det ikke. Hvorfor?

  2. Grupperet LIMIT i PostgreSQL:vis de første N rækker for hver gruppe?

  3. Er det muligt at bruge Crosstab/Pivot Query i MySQL?

  4. Opret forbindelse til mysql i en docker-container fra værten