PDOStatement :: fetchAll
PDOStatement :: fetchAll - mengembalikan array semua baris dalam hasil set (PHP 5> = 5.1.0, PECL PDO> = 0.1.0)
penjelasan
tatabahasa
array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )
parameter
fetch_style
Bagaimana mengontrol baris berikutnya dikembalikan ke pemanggil. Nilai ini harus PDO :: FETCH_ * konstanta dalam seri, nilai default untuk PDO :: ATTR_DEFAULT_FETCH_MODE (default PDO :: FETCH_BOTH).
Untuk kembali satu set hasil yang berisi sebuah array dari semua nilai dalam satu kolom, Anda perlu menentukan PDO :: FETCH_COLUMN. Dapatkan kolom yang diinginkan dengan menentukan parameter kolom-index.
Ingin mendapatkan hasil set nilai unik dalam satu kolom, Anda perlu PDO :: FETCH_COLUMN dan PDO :: bitwise FETCH_UNIQUE atau.
Untuk kembali kolom berdasarkan nilai tertentu dari array asosiatif dikelompokkan, kita perlu PDO :: FETCH_COLUMN dan PDO :: FETCH_GROUP bitwise atau.
fetch_argument
parameter Fetch_style berdasarkan nilai parameter ini memiliki arti yang berbeda:
PDO::FETCH_COLUMN
: Kembali ke kolom nol-diindeks.PDO::FETCH_CLASS
: mengembalikan sebuah instance dari kelas tertentu, pemetaan kolom untuk setiap baris yang sesuai dengan kelas atribut nama.PDO::FETCH_FUNC
: kolom setiap baris sebagai argumen untuk fungsi tertentu, dan mengembalikan hasil setelah memanggil fungsi.
ctor_args
Ketika parameter fetch_style PDO :: FETCH_CLASS, karena definisi parameter konstruktor kelas.
Kembali Nilai
PDOStatement :: fetchAll () mengembalikan set hasil yang berisi sebuah array dari semua lini yang tersisa. Setiap baris dari array ini adalah array atau nilai kolom, atau atribut objek yang sesuai untuk setiap nama kolom.
Gunakan metode ini untuk mendapatkan hasil set besar akan menyebabkan beban sistem dan dapat mengambil banyak sumber daya jaringan. Mengambil semua data dan penggunaan PHP untuk beroperasi, itu akan lebih baik untuk mempertimbangkan penggunaan layanan database untuk menangani hasil yang ditetapkan. Misalnya, sebelum dan mengambil data melalui proses PHP untuk menentukan hasil dengan MANA dan ORDER BY klausa di SQL.
contoh
Dapatkan semua baris yang tersisa di set hasil
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 获取结果集中所有剩余的行 */ print("Fetch all of the remaining rows in the result set:\n"); $result = $sth->fetchAll(); print_r($result); ?>
Output dari contoh di atas adalah:
Fetch all of the remaining rows in the result set: Array ( [0] => Array ( [NAME] => pear [0] => pear [COLOUR] => green [1] => green ) [1] => Array ( [NAME] => watermelon [0] => watermelon [COLOUR] => pink [1] => pink ) )
Menjadi hasil tunggal mengatur semua nilai-nilai
Contoh berikut menunjukkan bagaimana untuk berkonsentrasi kembali terpisah semua nilai dari hasilnya, meskipun pernyataan SQL itu sendiri dapat kembali beberapa kolom per baris.
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 获取第一列所有值 */ $result = $sth->fetchAll(PDO::FETCH_COLUMN, 0); var_dump($result); ?>
Output dari contoh di atas adalah:
Array(3) ( [0] => string(5) => apple [1] => string(4) => pear [2] => string(10) => watermelon )
Menurut pengelompokan terpisah semua nilai
Contoh berikut menunjukkan bagaimana mengembalikan array asosiatif terpusat ditentukan nilai kolom berdasarkan hasil dari paket. array berisi tiga kunci: apel dan pir kembali array berisi dua warna yang berbeda, sementara semangka kembali array berisi hanya satu warna.
<?php $insert = $dbh->prepare("INSERT INTO fruit(name, colour) VALUES (?, ?)"); $insert->execute(array('apple', 'green')); $insert->execute(array('pear', 'yellow')); $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 根据第一列分组 */ var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP)); ?>
Output dari contoh di atas adalah:
array(3) { ["apple"]=> array(2) { [0]=> string(5) "green" [1]=> string(3) "red" } ["pear"]=> array(2) { [0]=> string(5) "green" [1]=> string(6) "yellow" } ["watermelon"]=> array(1) { [0]=> string(5) "green" } }
Setiap baris dalam hasil instantiate kelas
Liezi bawah menunjukkan PDO :: FETCH_CLASS Mendapat perilaku gaya.
<?php class fruit { public $name; public $colour; } $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_CLASS, "fruit"); var_dump($result); ?>
Output dari contoh di atas adalah:
array(3) { [0]=> object(fruit)#1 (2) { ["name"]=> string(5) "apple" ["colour"]=> string(5) "green" } [1]=> object(fruit)#2 (2) { ["name"]=> string(4) "pear" ["colour"]=> string(6) "yellow" } [2]=> object(fruit)#3 (2) { ["name"]=> string(10) "watermelon" ["colour"]=> string(4) "pink" } }
Setiap baris panggilan fungsi
Liezi bawah menunjukkan PDO :: FETCH_FUNC Mendapat perilaku gaya.
<?php function fruit($name, $colour) { return "{$name}: {$colour}"; } $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_FUNC, "fruit"); var_dump($result); ?>
Output dari contoh di atas adalah:
array(3) { [0]=> string(12) "apple: green" [1]=> string(12) "pear: yellow" [2]=> string(16) "watermelon: pink" }