PDOStatement->fetch

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

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

Açıklama

PDOStatement::fetch ([ int $alım_tarzı = PDO::FETCH_BOTH [, 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. alım_tarzı değiştirgesi ile PDO'nun satırı nasıl döndüreceği belirtilir.

Değiştirgeler

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.

Dönen Değerler

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.

Örnekler

Ö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_NUMPDO::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_NUMPDO::FETCH_ORI_LAST);
    do {
      
$data $row[0] . "\t" $row[1] . "\t" $row[2] . "\n";
      print 
$data;
    } while (
$row $stmt->fetch(PDO::FETCH_NUMPDO::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

Ayrıca Bakınız