(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
PDOStatement->bindColumn — Bir sütunu bir PHP değişkeni ile ilişkilendirir
$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.
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.
Başarı durumunda TRUE
, başarısızlık durumunda FALSE
döner.
Ö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