fetchColumn return boolean false when a row not is found or don't had more rows.(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.9.0)
PDOStatement::fetchColumn — Sonuç kümesindeki sonraki satırdan tek bir sütun döndürür
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
falsedeğerini alınacak satır kalmadığında dönenfalsedeğerinden ayırmak imkansızdır. Böyle bir durumda PDOStatement::fetch() kullanılmalıdır.
sütunnumSü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.
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.
Veriyi almak için PDOStatement::fetchColumn() yöntemini kullanırsanız aynı satırdan artık başka bir sütun döndüremezsiniz.
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.
Ö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ı
fetchColumn return boolean false when a row not is found or don't had more rows.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.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".