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
false
değerini alınacak satır kalmadığında dönenfalse
değerinden ayırmak imkansızdır. Böyle bir durumda PDOStatement::fetch() kullanılmalıdır.
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.
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".