Mysql
 sql >> Baza danych >  >> RDS >> Mysql

php do while nie działa z next->rowset

Miałem ten sam problem z PDO::nextRowset(), ponieważ zwraca true, nawet jeśli nie ma więcej dostępnych zestawów wierszy, dlatego podczas wywoływania fetchAll() zgłasza wyjątek HY000. (testowane na oknach PHP 5.5.12, Mysql 5.5.17 linux)

Obejściem tego problemu jest sprawdzenie liczby kolumn metodą PDO::columnCount() przed pobraniem zestawu wierszy. Jeśli jest niezerowe, masz poprawny zestaw wierszy, a zatem możesz wywołać PDO::fetchAll().

Nawet jeśli PDO::nextRowset() zgłasza prawdę, columnCount() zgłosi liczbę kolumn przed przejściem do następnego zestawu wierszy.

Przykład:

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. SQLAlchemy:Utracono połączenie z serwerem MySQL podczas zapytania

  2. Zapytanie MYSQL do wybrania wyniku warunku jednej tabeli i wyświetlenia go w innej tabeli

  3. Zapytanie mysql działa po uruchomieniu w phpmyadminie, ale zwraca błąd po uruchomieniu w php

  4. Tworzenie relacji:#1452 - Nie można dodać lub zaktualizować wiersza podrzędnego:ograniczenie klucza obcego nie powiodło się

  5. Jak zaktualizować wiele tabel za pomocą pojedynczego zapytania mysql?