Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

PDOStatement::nextRowSet() rusak di MySQL 5.6.16 di Windows

Saya memiliki masalah yang sama dengan PDO::nextRowset(), karena mengembalikan true meskipun tidak ada lagi baris yang tersedia, oleh karena itu ketika memanggil fetchAll(), itu menimbulkan pengecualian HY000. (diuji pada PHP 5.5.12 windows, MySQL 5.5.17 linux)

Solusi untuk masalah ini adalah memeriksa jumlah kolom dengan metode PDO::columnCount() sebelum mengambil rowset. Jika bukan nol, Anda memiliki rowset yang valid, dan dengan demikian Anda dapat memanggil PDO::fetchAll().

Bahkan jika PDO::nextRowset() melaporkan true, columnCount() akan melaporkan jumlah kolom sebelum pindah ke rowset berikutnya.

Contoh:

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. Isi kotak Drop down dari tabel mySQL di PHP

  2. Impor data hex/biner ke mysql

  3. mysql kiri gabungkan jumlah dua tabel dengan rollup

  4. Sisipan Massal MySql

  5. Kesalahan:SQLSTATE[HY000] [2002] Tidak ada file atau direktori seperti itu