Pleas note the following:
If you try binding a column name, that is not existent in the result set referenced by your PDOStatement there will be a warning issued regardless of your PDO ATTR_ERRMODE setting. You can supress that warning using the @ supression operator, but there is no other way of finding out if an column you try to bind actually exist other than inspecting error_get_last( ) and it's fellow companions.
Also refer to this bug report http://bugs.php.net/bug.php?id=52104
PDOStatement->bindColumn
(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
PDOStatement->bindColumn — Bir sütunu bir PHP değişkeni ile ilişkilendirir
Açıklama
$sütun
, mixed &$değişken
[, int $veri_türü
[, int $uzunluk
[, mixed $seçenekler
]]] )Bir sorgunun sonuç kümesindeki belli bir sütunu bir değişken ile ilişkilendirir. Her PDOStatement::fetch() veya PDOStatement::fetchAll() çağrısında sütunlarla ilişkili değişkenler güncellenir.
Bilginize:
Deyim çalıştırılana kadar sütun bilgisi PDO'ya görünür olmadığından taşınabilir uygulamaların bu yöntemi bir PDOStatement::execute() çağrısından sonra kullanmaları gerekir.
Ancak, PgSQL sürücüsü kullanılırken bir LOB sütununu bir akımla ilişkilendirmek için bu yöntemin PDOStatement::execute() çağrısından önce kullanılması gerekir. Aksi takdirde büyük nesnenin nesne kimliği (oid) bir tamsayı olarak döner.
Değiştirgeler
-
sütun -
Sütunun numarası veya ismi; sütun numaraları 1'den başlar. Sütun isminin sürücüden dönen isimle aynı harf büyüklüklerine sahip olmasına dikkat edin.
-
değişken -
Sütun ile ilişkilendirilecek PHP değişkeninin ismi.
-
veri_türü -
PDO::PARAM_* sabitlerinden biri olarak veri türü.
-
uzunluk -
Yer ayırmak için ipucu olarak kullanılır.
-
seçenekler -
Sürücü için isteğe bağlı değiştirgeler.
Dönen Değerler
Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.
Örnekler
Örnek 1 - Sonuç kümesi çıktısının PHP değişkenleri ile ilişkilendirilmesi
Sütunları birer PHP değişkeni ile ilişkilendirmek, sonuç kümesinin her satırının anında kullanıma hazır olmasını sağlamanın en kolay ve en verimli yoludur. Aşağıdaki örnekte, sütunların alınması ve değişkenlerle ilişkilendirilirken akıllı öntanımlılarla bazı seçeneklerin kullanılışı gösterilmiştir.
<?php
function readData($dbh) {
$sql = 'SELECT name, colour, calories FROM fruit';
try {
$stmt = $dbh->prepare($sql);
$stmt->execute();
/* Bind by column number */
$stmt->bindColumn(1, $name);
$stmt->bindColumn(2, $colour);
/* Bind by column name */
$stmt->bindColumn('calories', $cals);
while ($row = $stmt->fetch(PDO::FETCH_BOUND)) {
$data = $name . "\t" . $colour . "\t" . $cals . "\n";
print $data;
}
}
catch (PDOException $e) {
print $e->getMessage();
}
}
readData($dbh);
?>
Yukarıdaki örneğin çıktısı:
apple red 150 banana yellow 175 kiwi green 75 orange orange 150 mango red 200 strawberry red 25
Ayrıca Bakınız
- PDOStatement::execute() - Bir hazır deyimi çalıştırır
- PDOStatement::fetch() - Sonuç kümesindeki sonraki satırı döndürür
- PDOStatement::fetchAll() - Sonuç kümesinin tüm satırlarını içeren bir dizi döndürür
- PDOStatement::fetchColumn() - Sonuç kümesindeki sonraki satırdan tek bir sütun döndürür
