PHPerKaigi 2024

PDOStatement::fetchColumn

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

PDOStatement::fetchColumnSonuç kümesindeki sonraki satırdan tek bir sütun döndürür

Açıklama

public PDOStatement::fetchColumn(int $sütun = 0): mixed

Sonuç kümesindeki sonraki satırdan tek bir sütun döndürür; artık satır kalmamışsa false döner.

Bilginize:

PDOStatement::fetchColumn() mantıksal sütunların alımında kullanılmamalıdır, çünkü sütundaki bir false değerini alınacak satır kalmadığında dönen false değerinden ayırmak imkansızdır. Böyle bir durumda PDOStatement::fetch() kullanılmalıdır.

Bağımsız Değişkenler

sütunnum

Sütunun numarası. İlk sütunun indisi 0'dır. Bağımsız değişkende hiçbir değer belirtilmemişse ilk sütunun değeri döner.

Dönen Değerler

Sonuç kümesinde sonraki satırdan tek bir sütunun değerini bir dizge olarak döndürür. Satırlar tükenince false döner.

Uyarı

Veriyi almak için PDOStatement::fetchColumn() yöntemini kullanırsanız aynı satırdan artık başka bir sütun döndüremezsiniz.

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 - Sonraki satırın ilk sütununu döndürmek

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

print
"Sonuç kümesindeki sonraki satırın ilk sütunu:\n";
$result = $sth->fetchColumn();
print
"name = $result\n";

print
"Sonuç kümesindeki sonraki satırın ikinci sütunu:\n";
$result = $sth->fetchColumn(1);
print
"colour = $result\n";
?>

Yukarıdaki örneğin çıktısı:

Sonuç kümesindeki sonraki satırın ilk sütunu:
isim = limon
Sonuç kümesindeki sonraki satırın ikinci sütunu:
renk = kırmızı

Ayrıca Bakınız

add a note

User Contributed Notes 3 notes

up
52
PhoneixSegovia at GOOGLE_MAIL_SERVER dot com
13 years ago
fetchColumn return boolean false when a row not is found or don't had more rows.
up
11
seanferd at assmasterdonkeyranch dot com
17 years ago
This is an excellent method for returning a column count. For example:

<?php
$db
= new PDO('mysql:host=localhost;dbname=pictures','user','password');
$pics = $db->query('SELECT COUNT(id) FROM pics');
$this->totalpics = $pics->fetchColumn();
$db = null;
?>
In my case $pics->fetchColumn() returns 641 because that is how many pictures I have in my db.
up
0
theking2(at)king.ma
1 month ago
When migrating from mysqli it is important that while mysqli_result::fetch_column will iterate over subsequent rows PDOStatement::fetchColumn will NOT!

<?php
while ( $row0 = $db->query("SELECT `value` FROM `bool`")->fetchColumn(0) ) {
var_dump( $row0 );
}
?>

is an endless loop unless the first column in the first row of the table bool is "0".
To Top