PHP Unconference Europe 2015

PDOStatement::fetchColumn

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

PDOStatement::fetchColumn Returns a single column from the next row of a result set

Descrição

public string PDOStatement::fetchColumn ([ int $column_number = 0 ] )

Returns a single column from the next row of a result set or FALSE if there are no more rows.

Parâmetros

column_number

0-indexed number of the column you wish to retrieve from the row. If no value is supplied, PDOStatement::fetchColumn() fetches the first column.

Valor Retornado

PDOStatement::fetchColumn() returns a single column in the next row of a result set.

Aviso

There is no way to return another column from the same row if you use PDOStatement::fetchColumn() to retrieve data.

Exemplos

Exemplo #1 Return first column of the next row

<?php
$sth 
$dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Fetch the first column from the next row in the result set */
print("Fetch the first column from the next row in the result set:\n");
$result $sth->fetchColumn();
print(
"name = $result\n");

print(
"Fetch the second column from the next row in the result set:\n");
$result $sth->fetchColumn(1);
print(
"colour = $result\n");
?>

O exemplo acima irá imprimir:

Fetch the first column from the next row in the result set:
name = lemon
Fetch the second column from the next row in the result set:
colour = red

Veja Também

add a note add a note

User Contributed Notes 5 notes

up
14
PhoneixSegovia at GOOGLE_MAIL_SERVER dot com
4 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
7 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
nobody
1 month ago
In response to php at luka5 dot de, you cannot assume that the example above is incorrect because we did not see the datasource.  If you look, the first column (name) of the first row was 'lemon' and the 2nd column (color) of the 2nd row was red.

If I had to assume, I would suspect the data source did not hold a red lemon.
up
-1
php at luka5 dot de
1 month ago
> There is no way to return another column from the same row if you use PDOStatement::fetchColumn() to retrieve data.

The example above does not work, because we call fetchColumn twice.
up
-13
Nathan Pohpam
2 years ago
WARNING: PhoenixSegovia isn't quite correct. Perhaps it's implementation-dependent, but fetchColumn returns the empty string in my program. Beware!
To Top