Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

PDOStatement ::nextRowSet () bị hỏng trong MySQL 5.6.16 trên Windows

Tôi đã gặp vấn đề tương tự với PDO ::nextRowset (), vì nó trả về true ngay cả khi không còn tập hợp hàng nào nữa, do đó khi gọi fetchAll (), nó tăng ngoại lệ HY000. (đã thử nghiệm trên các cửa sổ PHP 5.5.12, Mysql 5.5.17 linux)

Một giải pháp cho vấn đề này là kiểm tra số lượng cột bằng phương thức PDO ::columnCount () trước khi tìm nạp tập hợp hàng. Nếu nó khác 0, bạn có một tập hợp hàng hợp lệ và do đó bạn có thể gọi PDO ::fetchAll ().

Ngay cả khi PDO ::nextRowset () báo cáo true, thì columnCount () sẽ báo cáo số cột trước khi chuyển sang tập hàng tiếp theo.

Ví dụ:

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. Cách sử dụng kết xuất MySQL từ một máy từ xa

  2. ĐẶT HÀNG ĐOÀN KẾT MYSQL

  3. Mô hình hóa cơ sở dữ liệu:Làm thế nào để quảng cáo hóa các sản phẩm như Amazon?

  4. Cách xử lý kết xuất SQL với Python

  5. Giải pháp thay thế để sử dụng SQL động trong một Thủ tục được lưu trữ là gì