CakeFest 2024: The Official CakePHP Conference

PDOStatement::fetchColumn

(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

Beschreibung

public PDOStatement::fetchColumn(int $column = 0): mixed

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.

Parameter-Liste

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.

Rückgabewerte

PDOStatement::fetchColumn() gibt eine einzelne Spalte aus der nächsten Zeile einer Ergebnismenge zurück oder false, wenn es keine weiteren Zeilen gibt.

Warnung

Wenn Daten mittels PDOStatement::fetchColumn() abgerufen werden, gibt es keine Möglichkeit, eine andere Spalte aus derselben Zeile abzurufen.

Fehler/Exceptions

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.

Beispiele

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

Siehe auch

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
2 months 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