Mysql
 sql >> база данни >  >> RDS >> Mysql

PDOStatement::nextRowSet() е повреден в MySQL 5.6.16 на Windows

Имах същия проблем с PDO::nextRowset(), тъй като връща true, дори да няма повече налични набори редове, следователно при извикване на fetchAll(), той повдига изключение HY000. (тествано на PHP 5.5.12 windows, Mysql 5.5.17 linux)

Заобиколно решение за този проблем е да се провери броя на колоните с метода PDO::columnCount(), преди да се извлече набор от редове. Ако е различно от нула, имате валиден набор от редове и по този начин можете да извикате PDO::fetchAll().

Дори ако PDO::nextRowset() отчете true, columnCount() ще отчете броя на колоните, преди да премине към следващия набор от редове.

Пример:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка ETIMEOUT | Google Cloud SQL база данни с NodeJS

  2. създаване на динамично php вмъкване във функцията mysql?

  3. Вземете текст от файл и го вмъкнете в mysql таблица с помощта на скрипт

  4. Подобрете как да получите броя на срещата за всяка отделна стойност на Group Concat Mysql

  5. Съхраняване на данни от MySQL таблица като CSV с помощта на PDO чрез браузър