PDOStatement::bindColumn

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

PDOStatement::bindColumnBir sütunu bir PHP değişkeni ile ilişkilendirir

Açıklama

public PDOStatement::bindColumn(
    string|int $sütun,
    mixed &$değişken,
    int $veri_türü = PDO::PARAM_STR,
    int $uzunluk = 0,
    mixed $seçenekler = null
): bool

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.

Bağımsız Değişkenler

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ı bağımsız değişkenler.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda 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 - 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
$stmt
= $dbh->prepare('SELECT name, colour, calories FROM fruit');
$stmt->execute();

/* Sütun numarasına göre ilişkilendir */
$stmt->bindColumn(1, $name);
$stmt->bindColumn(2, $colour);

/* Sütun ismine göre ilişkilendir */
$stmt->bindColumn('calories', $cals);

while (
$stmt->fetch(PDO::FETCH_BOUND)) {
print
$name . "\t" . $colour . "\t" . $cals . "\n";
}

Yukarıdaki örnek şuna benzer bir çıktı üretir:

apple   red     150
banana  yellow  175
kiwi    green   75
orange  orange  150
mango   red     200
strawberry      red     25

Ayrıca Bakınız

add a note add a note

User Contributed Notes 1 note

up
-11
Moses Blumenstiel
3 years ago
I wanted to efficiently bind columns and then put everything into one array.

<?php

        $columns
= array(
           
'DEVICE_CONFIG' => '',
           
'CONSUMABLE_INFO' => '',
           
'DEVICE_UNIQUE_ID' => '',
           
'STATUS' => '',
           
'STATUS_MESSAGE' => '',
           
'LAST_MESSAGE_TIME' => '',
           
'DEVICE_DESCRIPTION' => ''
       
);

       
$statement = $this->connection->prepare($sql);

       
$statement->execute(); 

       
$x = 1;       
        foreach(
$columns as $column => $index){
            $
$column = $index;           
            eval(
'$statement->bindColumn(' . $x++ . ', $' . $column . ');');           
        }       
       
       
$output= array();
        while(
$statement->fetch(\PDO::FETCH_BOUND)){
           
$temp = array();
            foreach(
$columns as $columnName => $val){               
                eval(
"\$data = \$$columnName;");
               
$temp[$columnName] = $data;
            }
           
$output[] = $temp;
        } 
?>
To Top