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 — Liefert eine einzelne Spalte aus der nächsten Zeile einer Ergebnismenge
Gibt eine einzelne Spalte aus der nächsten Zeile einer Ergebnismenge zurück
oder false
, wenn es keine weiteren Zeilen gibt.
Hinweis:
PDOStatement::fetchColumn() sollte nicht verwendet werden, um boolesche Spalten abzurufen, da nicht unterschieden werden kann, ob der Wert
false
ist oder ob keine weiteren Zeilen abgerufen werden können. Stattdessen sollte PDOStatement::fetch() verwendet werden.
column
Die Nummer der Spalte (beginnend bei 0), die aus der Zeile abgerufen werden soll. Wenn kein Wert angegeben wird, ruft PDOStatement::fetchColumn() die erste Spalte ab.
PDOStatement::fetchColumn() gibt eine einzelne
Spalte aus der nächsten Zeile einer Ergebnismenge zurück oder false
, wenn
es keine weiteren Zeilen gibt.
Wenn Daten mittels PDOStatement::fetchColumn() abgerufen werden, gibt es keine Möglichkeit, eine andere Spalte aus derselben Zeile abzurufen.
Gibt einen Fehler der Stufe E_WARNING
aus, wenn das Attribut PDO::ATTR_ERRMODE
auf PDO::ERRMODE_WARNING
gesetzt ist.
Löst eine PDOException aus, wenn das Attribut PDO::ATTR_ERRMODE
auf PDO::ERRMODE_EXCEPTION
gesetzt ist.
Beispiel #1 Abrufen der ersten Spalte aus der nächsten Zeile
<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
print "Abrufen der ersten Spalte aus der ersten Zeile der Ergebnismenge:\n";
$result = $sth->fetchColumn();
print "name = $result\n";
print "Abrufen der zweiten Spalte aus der zweiten Zeile der Ergebnismenge:\n";
$result = $sth->fetchColumn(1);
print "colour = $result\n";
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Abrufen der ersten Spalte aus der ersten Zeile der Ergebnismenge: name = lemon Abrufen der zweiten Spalte aus der zweiten Zeile der Ergebnismenge: colour = red
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".