PDOStatement::fetchAll — Mengembalikan array yang berisi semua baris dalam kumpulan hasil (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
array PDOStatement::fetchAll ([ int $fetch_style [, campuran $fetch_argument [, array $ctor_args = array() ]]] )
ambil_gaya
Mengontrol bagaimana saluran berikutnya dikembalikan ke pemanggil. Nilai ini harus berupa salah satu rangkaian konstanta PDO::FETCH_*, dan nilai defaultnya adalah nilai PDO::ATTR_DEFAULT_FETCH_MODE (defaultnya adalah PDO::FETCH_BOTH).
Untuk mengembalikan array yang berisi semua nilai dari satu kolom di kumpulan hasil, tentukan PDO::FETCH_COLUMN. Dapatkan kolom yang diinginkan dengan menentukan parameter indeks kolom.
Untuk mendapatkan nilai unik dari satu kolom di kumpulan hasil, Anda perlu bitwise OR PDO::FETCH_COLUMN dan PDO::FETCH_UNIQUE.
Untuk mengembalikan array asosiatif dengan nilai yang dikelompokkan berdasarkan kolom yang ditentukan, Anda perlu bitwise OR PDO::FETCH_COLUMN dan PDO::FETCH_GROUP.
ambil_argumenParameter ini memiliki arti berbeda tergantung pada nilai parameter gaya_ambil:
PDO::FETCH_COLUMN
: Mengembalikan kolom tertentu yang diindeks mulai dari 0.
PDO::FETCH_CLASS
: Mengembalikan sebuah instance dari kelas yang ditentukan, memetakan kolom setiap baris ke nama atribut yang sesuai di kelas tersebut.
PDO::FETCH_FUNC
: Meneruskan kolom setiap baris sebagai parameter ke fungsi yang ditentukan dan mengembalikan hasilnya setelah memanggil fungsi tersebut.
ctor_args Ketika parameter Fetch_style adalah PDO::FETCH_CLASS, parameter konstruktor kelas khusus.
PDOStatement::fetchAll() mengembalikan array yang berisi semua baris tersisa di kumpulan hasil. Setiap baris array ini dapat berupa array nilai kolom atau objek dengan properti yang sesuai dengan setiap nama kolom.
Menggunakan metode ini untuk mendapatkan kumpulan hasil yang besar akan memberikan beban berat pada sistem dan mungkin menghabiskan sumber daya jaringan dalam jumlah besar. Daripada mengambil semua data dan kemudian mengoperasikannya dengan PHP, pertimbangkan untuk menggunakan layanan database untuk memproses kumpulan hasil. Misalnya, gunakan klausa WHERE dan ORDER BY dalam SQL untuk mengkualifikasi hasil sebelum mengambil data dan memprosesnya melalui PHP.
<?php$sth = $dbh->prepare("PILIH nama, warna DARI buah");$sth->execute();/* Dapatkan semua baris yang tersisa di kumpulan hasil*/print("Ambil semua baris yang tersisa di kumpulan hasil:n");$result = $sth->fetchAll();print_r($result);?>
Output dari contoh di atas adalah:
Ambil semua baris yang tersisa di kumpulan hasil:Array( [0] => Array ( [NAMA] => pir [0] => pir [WARNA] => hijau [1] => hijau ) [1] => Array ( [NAMA] => semangka [0] => semangka [WARNA] => merah jambu [1] => merah jambu ))
Contoh berikut menunjukkan cara mengembalikan semua nilai satu kolom dari kumpulan hasil, meskipun pernyataan SQL itu sendiri dapat mengembalikan beberapa kolom per baris.
<?php$sth = $dbh->prepare("PILIH nama, warna DARI buah");$sth->execute();/* Dapatkan semua nilai di kolom pertama*/$result = $sth-> ambilSemua(PDO ::FETCH_COLUMN, 0);var_dump($hasil);?>
Output dari contoh di atas adalah:
Array(3)( [0] => string(5) => apel [1] => string(4) => pir [2] => string(10) => semangka)
Contoh berikut menunjukkan cara mengembalikan array asosiatif yang dikelompokkan berdasarkan nilai kolom tertentu di kumpulan hasil. Array berisi tiga kunci: array apel dan pir yang dikembalikan berisi dua warna berbeda, sedangkan array semangka yang dikembalikan hanya berisi satu warna.
<?php$insert = $dbh->prepare("INSERT INTO buah(nama, warna) VALUES (?, ?)");$insert->execute(array('apple', 'green'));$insert ->execute(array('pear', 'kuning'));$sth = $dbh->prepare("PILIH nama, warna DARI buah");$sth->execute();/* Kelompokkan berdasarkan kolom pertama*/var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));?>
Output dari contoh di atas adalah:
larik(3) { ["apel"]=> larik(2) { [0]=> string(5) "hijau" [1]=> string(3) "merah" } ["pir"]=> larik (2) { [0]=> string(5) "hijau" [1]=> string(6) "kuning" } ["semangka"]=> array(1) { [0]=> string(5) "hijau" }}
Contoh berikut menunjukkan perilaku gaya akuisisi PDO::FETCH_CLASS.
<?phpclass buah { public $nama; publik $warna;}$sth = $dbh->prepare("PILIH nama, warna DARI buah");$sth->execute();$hasil = $sth->fetchAll( PDO::FETCH_CLASS, "buah");var_dump($hasil);?>
Output dari contoh di atas adalah:
array(3) { [0]=> objek(buah)#1 (2) { ["nama"]=> string(5) "apel" ["warna"]=> string(5) "hijau" } [ 1]=> objek(buah)#2 (2) { ["nama"]=> string(4) "pir" ["warna"]=> string(6) "kuning" } [2]=> objek( buah)#3 (2) { ["nama"]=> string(10) "semangka" ["warna"]=> string(4) "merah muda" }}
Contoh berikut menunjukkan perilaku gaya get PDO::FETCH_FUNC.
<?phpfunction buah($nama, $warna) { return "{$name}: {$warna}";}$sth = $dbh->prepare("PILIH nama, warna DARI buah");$sth->eksekusi ();$hasil = $sth->fetchAll(PDO::FETCH_FUNC, "buah");var_dump($hasil);?>
Output dari contoh di atas adalah:
array(3) { [0]=> string(12) "apel: hijau" [1]=> string(12) "pir: kuning" [2]=> string(16) "semangka: merah muda"}