sql >> Databáze >  >> RDS >> Mysql

PDOStatement::nextRowSet() je nefunkční v MySQL 5.6.16 ve Windows

Měl jsem stejný problém s PDO::nextRowset(), protože vrací true, i když nejsou k dispozici žádné další sady řádků, proto při volání fetchAll() vyvolá výjimku HY000. (testováno na PHP 5.5.12 Windows, Mysql 5.5.17 linux)

Řešením tohoto problému je zkontrolovat počet sloupců pomocí metody PDO::columnCount() před načtením sady řádků. Pokud je nenulová, máte platnou sadu řádků, a proto můžete volat PDO::fetchAll().

I když PDO::nextRowset() hlásí true, columnCount() ohlásí počet sloupců před přechodem na další sadu řádků.

Příklad:

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


  1. Proč se mohu připojit k MySQL přes shell, ale nemohu to udělat přes Python?

  2. Proč nemůže easy_install najít MySQLdb?

  3. Počítejte odlišné hodnoty

  4. Nelze vytvořit testovací soubor nižší testovací start serveru mysql