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

PHP PDO với foreach và tìm nạp

Một PDOStatement (mà bạn có trong $users ) là một con trỏ chuyển tiếp. Điều đó có nghĩa là, sau khi được sử dụng (foreach đầu tiên lặp lại), nó sẽ không tua lại phần đầu của tập kết quả.

Bạn có thể đóng con trỏ sau foreach và thực hiện lại câu lệnh:

$users       = $dbh->query($sql);
foreach ($users as $row) {
    print $row["name"] . " - " . $row["sex"] . "<br/>";
}

$users->execute();

foreach ($users as $row) {
    print $row["name"] . " - " . $row["sex"] . "<br/>";
}

Hoặc bạn có thể lưu vào bộ nhớ cache bằng cách sử dụng CachingIterator phù hợp với fullcache:

$users       = $dbh->query($sql);

$usersCached = new CachedPDOStatement($users);

foreach ($usersCached as $row) {
    print $row["name"] . " - " . $row["sex"] . "<br/>";
}
foreach ($usersCached as $row) {
    print $row["name"] . " - " . $row["sex"] . "<br/>";
}

Bạn tìm CachedPDOStatement lớp học như một ý chính . Trình lặp bộ nhớ đệm có lẽ lành mạnh hơn việc lưu trữ tập kết quả vào một mảng vì nó vẫn cung cấp tất cả các thuộc tính và phương thức của PDOStatement đối tượng mà nó đã bọc.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. thiệt hại tiêm mysql?

  2. So sánh mã zip MySQL PHP cụ thể khoảng cách

  3. SQL QUERY Sự cố sắp xếp kết quả

  4. làm thế nào để tự động chèn tham chiếu khóa ngoại trong bảng trong mysql hoặc JDBC?

  5. Tìm kiếm không phân biệt dấu phụ trong MySQL (dấu tiếng Tây Ban Nha)