PHP 8.4.1 Released!

PDOStatement::fetchColumn

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

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

Descripción

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

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

Nota:

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.

Parámetros

column_number

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.

Advertencia

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

Ejemplos

Ejemplo #1 Devolver la primera columna de la siguiente fila

<?php
$gsent
= $gbd->prepare("SELECT name, colour FROM fruit");
$gsent->execute();

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

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

El resultado del ejemplo sería:

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

Ver también

add a note

User Contributed Notes 3 notes

up
52
PhoneixSegovia at GOOGLE_MAIL_SERVER dot com
14 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
10 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