sql >> Databasteknik >  >> RDS >> Mysql

PDOStatement::nextRowSet() är trasig i MySQL 5.6.16 på Windows

Jag hade samma problem med PDO::nextRowset(), eftersom det returnerar sant även om det inte finns några fler raduppsättningar tillgängliga, därför när man anropar fetchAll(), höjer det undantag HY000. (testad på PHP 5.5.12 Windows, Mysql 5.5.17 linux)

En lösning för det här problemet är att kontrollera antalet kolumner med metoden PDO::columnCount() innan du hämtar raduppsättningen. Om den inte är noll har du en giltig raduppsättning, och därför kan du anropa PDO::fetchAll().

Även om PDO::nextRowset() rapporterar sant, kommer columnCount() att rapportera antalet kolumner innan den går till nästa raduppsättning.

Exempel:

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


  1. Konvertera rekursiv funktion till visning

  2. Exekvera flera icke-SELECT MySQL-satser som en enda kommandotext i .NET

  3. Hur förhindrar man dbms_output.put_line från att trimma ledande blanksteg?

  4. Det går inte att ansluta mysql till springboot-projektet