PDOStatement::fetchAll

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::fetchAllSonuç kümesinde kalan satırları döndürür

Açıklama

publicPDOStatement::fetchAll(int$kip = PDO::FETCH_DEFAULT): array
publicPDOStatement::fetchAll(int$kip = PDO::FETCH_COLUMN, int$sütun): array
publicPDOStatement::fetchAll(int$kip = PDO::FETCH_CLASS, string$sınıf, ?array$bağımsız_değişkenler): array
publicPDOStatement::fetchAll(int$kip = PDO::FETCH_FUNC, callable$geriçağırım): array

Bağımsız Değişkenler

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.

Aşağıdaki dinamik bağımsız değişkenler kipe bağlı olup isimli bağımsız değişkenlerde kullanılamaz.
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.

Dönen Değerler

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 Bilgisi

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.

Hatalar/İstisnalar

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.

Örnekler

Ö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" }

Ayrıca Bakınız

To Top