(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDOStatement->fetch — Sonuç kümesindeki sonraki satırı döndürür
$alım_tarzı = PDO::FETCH_BOTH
[, int $göst_yönü = PDO::FETCH_ORI_NEXT
[, int $göst_başlangıcı = 0
]]] )
PDOStatement nesnesi ile ilişkili sonuç kümesinden bir sonraki satırı
döndürür. alım_tarzı değiştirgesi ile PDO'nun satırı
nasıl döndüreceği belirtilir.
alım_tarzı
Sonrakı satırın nasıl döndürüleceğini belirtmek için kullanılır.
PDO::FETCH_* sabitlerinden biri olmalıdır.
PDO::FETCH_BOTH öntanımlı değerdir.
PDO::FETCH_ASSOC: Sütun isimlerine göre indisli
bir dizi döner.
PDO::FETCH_BOTH (öntanımlı): Hem sütun
isimlerine hem de sütun numaralarına göre indislenmiş bir dizi döner.
İlk sütunun indisi 0'dır.
PDO::FETCH_BOUND: Sütun değerlerini
PDOStatement::bindColumn() ile ilişkilendirilmiş
PHP değişkenlerine atar ve TRUE döndürür.
PDO::FETCH_CLASS: İstenen sınıfın özelliklerini
sütun isimlerine eşleyerek sınıfın bir örneğini döndürür. Eğer
alım_tarzı değiştirgesi
PDO::FETCH_CLASSTYPE sabitini içeriyorsa (örn,
PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE) sınıf
ismi ilk sütunun değerine göre belirlenir.
PDO::FETCH_INTO: İstenen sınıfın mevcut örneğini
sütun isimlerini sınıf özelliklerine eşleyerek günceller.
PDO::FETCH_LAZY:
PDO::FETCH_BOTH ve
PDO::FETCH_OBJ sabitlerinin birleşimidir.
PDO::FETCH_NUM: Sütun numaralarına göre
indislenmiş bir dizi döner. İlk sütunun indisi 0'dır.
PDO::FETCH_OBJ: Özellik isimlerinin sınıf
isimlerine denk düştüğü bir anonim nesne örneği döndürür.
göst_yönü
Kaydırılabilir göstericili bir PDOStatement nesnesi
için, bu değer hangi satırın döndürüleceğini belirler.
PDO::FETCH_ORI_* sabitlerinden biri olmalıdır.
PDO::FETCH_ORI_NEXT öntanımlı değerdir.
PDOStatement nesnenize bir kaydırılabilir gösterici isteği yapmak için
SQL deyimini PDO::prepare() ile hazırlarken
PDO::CURSOR_SCROLL özelliğine
PDO::ATTR_CURSOR özniteliğini atamalısınız.
göst_başlangıcı
Kaydırılabilir göstericili bir PDOStatement nesnesi
için göst_yönü değiştirgesinde
PDO::FETCH_ORI_ABS belirtilirse bu değer sonuç
kümesinden alınacak mutlak satır numarasını belirler.
Kaydırılabilir göstericili bir PDOStatement nesnesi
için göst_yönü değiştirgesinde
PDO::FETCH_ORI_REL belirtilirse bu değer alınacak
satırı bir önceki PDOStatement::fetch() çağrısındaki
gösterici konumuna göreli olarak belirler.
Bu işlevin dönüş değeri alım türüne bağlıdır. Bir başarısızlık durumunda
daima FALSE döner.
Örnek 1 - Farklı alım tarzlarıyla satırların döndürülmesi
<?php
$sth = $dbh->prepare("SELECT ad, renk FROM meyveler");
$sth->execute();
/* PDOStatement::fetch tarzlarını deneyelim */
print("PDO::FETCH_ASSOC:\n");
print("Sütun isimlerine göre indisli bir dizi olarak:\n");
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
print("\n");
print("PDO::FETCH_BOTH:\n");
print("Sütun isimlerine ve numaralarına göre indisli bir dizi olarak:\n");
$result = $sth->fetch(PDO::FETCH_BOTH);
print_r($result);
print("\n");
print("PDO::FETCH_LAZY:\n");
echo "Her özelliğin bir sütun ismine denk düştüğü bir anonim nesne olarak:\n";
$result = $sth->fetch(PDO::FETCH_LAZY);
print_r($result);
print("\n");
print("PDO::FETCH_OBJ:\n");
echo "Her özelliğin bir sütun ismine denk düştüğü bir anonim nesne olarak:\n";
$result = $sth->fetch(PDO::FETCH_OBJ);
print $result->NAME;
print("\n");
?>
Yukarıdaki örneğin çıktısı:
PDO::FETCH_ASSOC:
Sütun isimlerine göre indisli bir dizi olarak:
Array
(
[AD] => elma
[RENK] => kırmızı
)
PDO::FETCH_BOTH:
Sütun isimlerine ve numaralarına göre indisli bir dizi olarak:
Array
(
[AD] => muz
[0] => muz
[RENK] => sarı
[1] => sarı
)
PDO::FETCH_LAZY:
Her özelliğin bir sütun ismine denk düştüğü bir anonim nesne olarak:
PDORow Object
(
[AD] => portakal
[RENK] => turuncu
)
PDO::FETCH_OBJ:
Her özelliğin bir sütun ismine denk düştüğü bir anonim nesne olarak:
kivi
Örnek 2 - Satırları bir kaydırılabilir gösterici ile döndürmek
<?php
function readDataForwards($dbh) {
$sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY BET';
try {
$stmt = $dbh->prepare($sql,
array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) {
$data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
print $data;
}
$stmt = null;
}
catch (PDOException $e) {
print $e->getMessage();
}
}
function readDataBackwards($dbh) {
$sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY bet';
try {
$stmt = $dbh->prepare($sql,
array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST);
do {
$data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
print $data;
} while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR));
$stmt = null;
}
catch (PDOException $e) {
print $e->getMessage();
}
}
print "İleriye doğru okuma:\n";
readDataForwards($conn);
print "Geriye doğru okuma:\n";
readDataBackwards($conn);
?>
Yukarıdaki örneğin çıktısı:
İleriye doğru okuma: 21 10 5 16 0 5 19 20 10 Geriye doğru okuma: 19 20 10 16 0 5 21 10 5