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

php do while sẽ không hoạt động với next-> rowet

Tôi đã gặp vấn đề tương tự với PDO ::nextRowset (), vì nó trả về true ngay cả khi không có thêm 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. Chế độ xem cụ thể hóa với MySQL

  2. MYSQL - Tách dữ liệu thành nhiều hàng

  3. Làm cách nào để chèn Datas vào Winform TreeView (C #) trong mã hóa hiệu quả?

  4. Có giới hạn bộ nhớ nào cho phương thức json_encode () không?

  5. Cảnh báo PHP:Khởi động PHP:Không thể tải thư viện động 'pdo_mysql.so'