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

PHP PDO dengan foreach dan fetch

PDOStatement (yang Anda miliki di $users ) adalah kursor-maju. Artinya, setelah dikonsumsi (foreach pertama] iterasi), itu tidak akan mundur ke awal kumpulan hasil.

Anda dapat menutup kursor setelah foreach dan jalankan pernyataan lagi:

$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/>";
}

Atau Anda dapat melakukan cache menggunakan CachingIterator yang disesuaikan dengan cache penuh:

$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/>";
}

Anda menemukan CachedPDOStatement kelas sebagai inti . Iterator caching mungkin lebih waras daripada menyimpan set hasil ke dalam array karena masih menawarkan semua properti dan metode PDOStatement objek yang telah dibungkusnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bagaimana cara memilih maksimum kolom string/int campuran?

  2. Kueri SUM untuk dua bidang dalam dua tabel yang berbeda

  3. Bagaimana cara menghapus baris dari tabel gabungan (ManyToMany) di Doctrine?

  4. Keluar dari baris perintah MYSQL melalui Bash Scripting

  5. Tidak dapat mengonversi nilai tanggal/waktu MySQL ke System.DateTime