(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDOStatement::fetchAll — Sonuç kümesinde kalan satırları döndürür
kip
PDOStatement::fetch() yönteminde açıklandığı gibi döndürülen dizinin içeriğini belirleyen sabit. PDO::FETCH_DEFAULT
ö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ütun
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ütun
PDO::FETCH_COLUMN
ile kullanılır. İlk sütunun indisinin 0
olduğu varsayımıyla sütun indisi.
bağımsız_değişkenler
PDO::FETCH_CLASS
ile kullanılır. Belirtilen sınıfın örnekleri, her sütun sınıfın isimli özellikleriyle eşleştirilerek döndürülür.
geriçağırım
PDO::FETCH_FUNC
ile kullanılır. Belirtilen işlevin sonuçları, her satırın sütunları çağrıda bağımsız değişken olarak kullanılarak döndürü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. Sıfır sonuç için boş dizi döner.
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 ORDER BY yan tümcelerini kullanarak, PHP'de işleme sokmadan önce sonuç kümesini küçültebilirsiniz.
Sürüm: | Açıklama |
---|---|
8.0.0 | Bu yöntem artık daima bir dizi döndürüyor, evvelce başarısızlık durumunda false dönerdi. |
PDO::ATTR_ERRMODE
özniteliğine PDO::ERRMODE_WARNING
atanırsa E_WARNING
düzeyinde bir hata çıktılanır.
PDO::ATTR_ERRMODE
özniteliğine PDO::ERRMODE_EXCEPTION
atanırsa PDOException istisnası oluşur.
Örnek 1 - Bir sonuç kümesinde kalan tüm satırları almak
<?php
$sth = $dbh->prepare("SELECT ad, renk FROM meyveler");
$sth->execute();
print "Sonuç kümesindeki tüm satırlar:\n";
$result = $sth->fetchAll();
print_r($result);
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
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();
$result = $sth->fetchAll(PDO::FETCH_COLUMN, 0);
var_dump($result);
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
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();
var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
array(3) { ["elma"]=> array(2) { [0]=> string(5) "yeşil" [1]=> string(7) "kırmızı" } ["armut"]=> array(2) { [0]=> string(5) "yeşil" [1]=> string(4) "sarı" } ["ahududu"]=> array(1) { [0]=> string(3) "mor" } }
Örnek 4 - Her sonuç için bir sınıf örneklemek
Aşağıda PDO::FETCH_CLASS
alım kipinin davranışı örneklenmiştir:
<?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);
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
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" } [3]=> object(fruit)#4 (2) { ["name"]=> string(5) "apple" ["colour"]=> string(3) "red" } [4]=> object(fruit)#5 (2) { ["name"]=> string(4) "pear" ["colour"]=> string(5) "green" } }
Örnek 5 - Her sonuç için bir işlev çağırmak
Aşağıda PDO::FETCH_FUNC
alım kipinin davranışı örneklenmiştir:
<?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);
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
array(3) { [0]=> string(12) "apple: green" [1]=> string(12) "pear: yellow" [2]=> string(16) "watermelon: pink" [3]=> string(10) "apple: red" [4]=> string(11) "pear: green" }