array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'pdostatement.fetch.php', 1 => 'PDOStatement::fetch', ), 'up' => array ( 0 => 'class.pdostatement.php', 1 => 'PDOStatement', ), 'prev' => array ( 0 => 'pdostatement.execute.php', 1 => 'PDOStatement::execute', ), 'next' => array ( 0 => 'pdostatement.fetchall.php', 1 => 'PDOStatement::fetchAll', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/pdo/pdostatement/fetch.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDOStatement::fetch — Sonuç kümesindeki sonraki satırı döndürür
$kip
= PDO::FETCH_DEFAULT, int $göst_yönü
= PDO::FETCH_ORI_NEXT, int $göst_başlangıcı
= 0): mixed
PDOStatement nesnesi ile ilişkili sonuç kümesinden bir sonraki satırı
döndürür. kip
bağımsız değişkeni ile PDO'nun satırı
nasıl döndüreceği belirtilir.
kip
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_DEFAULT
öntanımlı değerdir.
PDO::FETCH_ASSOC
: Sütun isimlerine 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 ve
PDO::FETCH_PROPS_LATE
ayrıca belirtilmemişse
ardından kurucu çağrılır. Eğer kip
bağımsız değişkeni
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_NAMED
: Aynı isimde birden fazla sütun
olmaması şartıyla PDO::FETCH_ASSOC
sabitindeki
gibi bir dizi döndürür. Bir anahtar tarafından atıfta bulunulan değer,
anahtarla aynı isimli sütundaki tüm değerlerin dizisini içerecektir.
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.
PDO::FETCH_PROPS_LATE
:
PDO::FETCH_CLASS
ile birlikte kullanıldığında,
özellikler ilgili sütundaki değerlere atanmadan önce sınıf kurucusu
çağrılı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ü
bağımsız değişkeninde
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ü
bağımsız değişkeninde
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. Başarısızlık durumunda veya
döndürülecek satır kalmamışsa false
döner.
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 - Farklı kiplerle 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->ad;
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';
$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;
}
}
function readDataBackwards($dbh) {
$sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY bet';
$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));
}
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
Örnek 3 - Oluşturma sırası
Nesneler PDO::FETCH_CLASS
üzerinden alındığında,
önce nesne özellikleri atanır, ardından sınıf kurucusu çağrılır. Ek
olarak PDO::FETCH_PROPS_LATE
sabiti de belirtilmişse,
bu sıra tersine döner, yani önce kurucu çağrılır ardından özellikler
atanır.
<?php
class Person
{
private $name;
public function __construct()
{
$this->tell();
}
public function tell()
{
if (isset($this->name)) {
echo "Ben {$this->name}.\n";
} else {
echo "Henüz adım yok.\n";
}
}
}
$sth = $dbh->query("SELECT * FROM people");
$sth->setFetchMode(PDO::FETCH_CLASS, 'Person');
$person = $sth->fetch();
$person->tell();
$sth->setFetchMode(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE, 'Person');
$person = $sth->fetch();
$person->tell();
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
Ben Ali. Ben Ali. Henüz adım yok. Ben Veli.