Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PDOStatement::nextRowSet() ist in MySQL 5.6.16 unter Windows defekt

Ich hatte das gleiche Problem mit PDO::nextRowset(), da es true zurückgibt, obwohl keine weiteren Rowsets verfügbar sind, daher wird beim Aufruf von fetchAll() die Ausnahme HY000 ausgelöst. (getestet auf PHP 5.5.12 Windows, Mysql 5.5.17 Linux)

Eine Problemumgehung für dieses Problem besteht darin, die Anzahl der Spalten mit der Methode PDO::columnCount() zu überprüfen, bevor das Rowset abgerufen wird. Wenn es nicht Null ist, haben Sie ein gültiges Rowset und könnten daher PDO::fetchAll().

aufrufen

Selbst wenn PDO::nextRowset() wahr meldet, wird columnCount() die Anzahl der Spalten melden, bevor zum nächsten Rowset übergegangen wird.

Beispiel:

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