PDOStatement->fetchAll

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

PDOStatement->fetchAllSonuç kümesinin tüm satırlarını içeren bir dizi döndürür

Açıklama

PDOStatement::fetchAll ([ int $alım_tarzı = PDO::FETCH_BOTH [, int $sütunnum [, array $değiştirgeler = array() ]]] ) : array

Değiştirgeler

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..

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.

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.

Örnekler

Ö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_COLUMN0);
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"
  }
}

Ayrıca Bakınız