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

php do while nebude fungovat s next->rowset

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. získání chyby při vytváření tabulky jako ORA-00904::neplatný identifikátor v databázi Oracle SQL

  2. Jak mohu spustit uloženou proceduru bez dotazu v JDBC

  3. Jaký typ byste mapovali BigDecimal v Javě/Hibernate v MySQL?

  4. Připojení Postgres z kazety Openshift Tomcat 7 bylo odmítnuto