Itu tergantung pada database yang Anda gunakan dan konfigurasi database Anda.
Untuk MySQL, Anda perlu memastikan bahwa Anda menggunakan kueri yang di-buffer. Di PDO Anda mengaturnya seperti ini:
$myPdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
Ini berarti bahwa semua data akan dikirim ke klien (tidak sama dengan mengambil semuanya di PHP).
Alternatif lain (mungkin lebih buruk) adalah membuka koneksi database baru setiap kali Anda mendeteksi kueri sedang dijalankan dengan kumpulan hasil yang masih terbuka.
mysql_query()
yang normal
menggunakan kueri buffer, sehingga akan bekerja dengan beberapa set hasil.