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

PDOStatement::fetchColumn Devuelve una única columna de la siguiente fila de un conjunto de resultados


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

Devuelve una única columna de la siguiente fila de un conjunto de resultados, o FALSE si no existen más filas.


No debería utilizarse PDOStatement::fetchColumn() para recuperar columnas booleanas, ya que es imposible distinguir el valor FALSE de la ausencia de filas a recurperar. Use PDOStatement::fetch() en su lugar.



El número de índice basado en 0 de la columna que se quiere obtener desde la fila. Si no se proporicona ningún valor, PDOStatement::fetchColumn() obtiene la primera columna.

Valores devueltos

PDOStatement::fetchColumn() devuelve una única columna de la siguiente fila de un conjunto de resultados.


No existe una forma de devolver otra columna de la misma fila si se utiliza PDOStatement::fetchColumn() para recuperar datos.


Ejemplo #1 Devolver la primera columna de la siguiente fila

$gbd->prepare("SELECT name, colour FROM fruit");

/* Obtener la primera columna de la siguiente fila del conjunto de resultados */
print("Obtener la primera columna de la siguiente fila del conjunto de resultados:\n");
$resultado $gsent->fetchColumn();
"nombre = $resultado\n");

"Obtener la segunda columna de la siguiente fila del conjunto de resultados:\n");
$resultado $gsent->fetchColumn(1);
"color = $resultado\n");

El resultado del ejemplo sería:

Obtener la primera columna de la siguiente fila del conjunto de resultados:
nombre = lemon
Obtener la segunda columna de la siguiente fila del conjunto de resultados:
color = red

Ver también

add a note add a note

User Contributed Notes 6 notes

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.
seanferd at assmasterdonkeyranch dot com
8 years ago
This is an excellent method for returning a column count. For example:

= 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.
8 months 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.
php at luka5 dot de
8 months 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.
Nathan Pohpam
3 years ago
WARNING: PhoenixSegovia isn't quite correct. Perhaps it's implementation-dependent, but fetchColumn returns the empty string in my program. Beware!
3 months ago
Example #1 is misleading because it does not work.

It uses fetchColumn() on the same statement twice, which is not supported.
So, mind the Warning!
(its my WTF moment of the day)
To Top