PDOStatement::fetch

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

PDOStatement::fetchSonuç kümesindeki sonraki satırı döndürür

Açıklama

publicPDOStatement::fetch(int$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.

Bağımsız Değişkenler

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.

Dönen Değerler

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.

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 - Farklı kiplerle satırların döndürülmesi

<?php
$sth
= $dbh->prepare("SELECT ad, renk FROM meyveler");
$sth->execute();


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.

Ayrıca Bakınız

To Top