(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDOStatement->fetchAll — Sonuç kümesinin tüm satırlarını içeren bir dizi döndürür
$alım_tarzı
= PDO::FETCH_BOTH
, int $sütunnum
= ?
, array $değiştirgeler
= array()
) : array
alım_tarzı
PDOStatement::fetch() yönteminde açıklandığı gibi
döndürülen dizinin içeriğini belirleyen sabit.
PDO::FETCH_BOTH
öntanımlıdır.
Sonuç kümesindeki tek bir sütunun tüm değerleri içeren bir dizi
döndürmek için PDO::FETCH_COLUMN
belirtin. Bu
durumda hangi sütunun içeriğinin alınacağını
sütunnum
ile belirtin.
Sonuç kümesindeki tek bir sütunun eşsiz değerleri içeren bir dizi
döndürmek için PDO::FETCH_COLUMN
ile
PDO::FETCH_UNIQUE
sabitini bit seviyesinde
VEYAlayın.
Belirtilen sütunun değerlerine göre gruplanmış bir ilişkisel dizi
döndürmek için PDO::FETCH_COLUMN
ile
PDO::FETCH_GROUP
sabitini bit seviyesinde
VEYAlayın.
sütunnum
alım_tarzı
değiştirgesinde
PDO::FETCH_COLUMN
belirtildiği takdirde alınacak
sütun numarası burada belirtilir. İlk sütunun indisi
0
olup öntanımlı değerdir.
değiştirgeler
Bu dizinin elemanları kurucuya değiştirge olarak aktarılır..
Sonuç kümesinde kalan satırların tümünü bir dizi olarak döndürür. Dizinin her elemanı birer satır içerir ve bu satır elemanları sütun değerlerini içeren bir dizi ya da sütun isimlerinin özelliklere karşı düştüğü bir nesne içerir.
Büyük sonuç kümelerini almak için bu yöntemi kullanmak sistem ve muhtemelen ağ kaynaklarından aşırı taleplere yol açar. Tüm veriyi alıp PHP ile işleme tabi tutmak yerine sonuç kümeleri üzerinde işlem yapmak için veritabanı sunucusunu kullanmak daha iyi olabilir. Örneğin, SQL'de WHERE ve SORT BY yan tümcelerini kullanarak, PHP'de işleme sokmadan önce sonuç kümesini küçültebilirsiniz.
Örnek 1 - Bir sonuç kümesinde kalan tüm satırları almak
<?php
$sth = $dbh->prepare("SELECT ad, renk FROM meyveler");
$sth->execute();
/* Sonuç kümesindeki tüm satırları alalım */
print("Sonuç kümesindeki tüm satırlar:\n");
$result = $sth->fetchAll();
print_r($result);
?>
Yukarıdaki örneğin çıktısı:
Sonuç kümesindeki tüm satırlar: Array ( [0] => Array ( [AD] => armut [0] => armut [RENK] => yeşil [1] => yeşil ) [1] => Array ( [AD] => ahududu [0] => ahududu [RENK] => mor [1] => mor ) )
Örnek 2 - Sonuç kümesinden tek bir sütunun tüm değerlerini almak
Aşağıdaki örnekte, SQL deyimi her satırda çok sayıda sütun döndürse bile bu sonuç kümesinden tek bir sütunun tüm değerlerinin nasıl alınacağı gösterilmiştir.
<?php
$sth = $dbh->prepare("SELECT isim, renk FROM meyveler");
$sth->execute();
/* İlk sütunun tüm değerlerini alalım */
$result = $sth->fetchAll(PDO::FETCH_COLUMN, 0);
var_dump($result);
?>
Yukarıdaki örneğin çıktısı:
Array(3) ( [0] => string(5) => elma [1] => string(4) => armut [2] => string(10) => ahududu )
Örnek 3 - Tüm değerleri tek bir sütuna göre gruplamak
Aşağıdaki örnekte, sonuç kümesindeki belli bir sütunun değerlerine göre gruplanmış bir ilişkisel dizini nasıl döndürüleceği gösterilmiştir. Dizi üç anahtar içerir: Elma ve armut iki farklı renk içeren iki dizi olarak ahududu ise tek renk içeren bir dizi olarak döndürülür.
<?php
$insert = $dbh->prepare("INSERT INTO fruit(isim, renk) VALUES (?, ?)");
$insert->execute(array('elma', 'yeşil'));
$insert->execute(array('armut', 'sarı'));
$sth = $dbh->prepare("SELECT isim, renk FROM meyveler");
$sth->execute();
/* Değerleri ilk sütuna göre gruplayalım */
var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));
?>
Yukarıdaki örneğin çıktısı:
array(3) { ["elma"]=> array(2) { [0]=> string(5) "yeşil" [1]=> string(3) "kırmızı" } ["armut"]=> array(2) { [0]=> string(5) "yeşil" [1]=> string(6) "sarı" } ["ahududu"]=> array(1) { [0]=> string(5) "mor" } }