php[world] 2015 Call for Speakers


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

PDOStatement::fetchColumn Retourne une colonne depuis la ligne suivante d'un jeu de résultats


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

Retourne une colonne depuis la ligne suivante d'un jeu de résultats ou FALSE s'il n'y a plus de ligne.


PDOStatement::fetchColumn() ne doit pas être utilisé pour récupérer des colonnes contenant des booléens, car il n'est pas possible de distinguer une valeur FALSE d'un retour avec aucune ligne à récupérer. Utilisez PDOStatement::fetch() à la place.

Liste de paramètres


Numéro de la colonne que vous voulez récupérer depuis la ligne (commençant à 0). Si aucune valeur n'est fournie, PDOStatement::fetchColumn() récupérera la première colonne.

Valeurs de retour

PDOStatement::fetchColumn() retourne une colonne depuis la ligne suivante d'un jeu de résultats.


Il n'y a pas de solution pour retourner une autre colonne depuis la même ligne si vous utilisez la fonction PDOStatement::fetchColumn() pour récupérer les données.


Exemple #1 Retourne la première colonne de la ligne suivante

$dbh->prepare("SELECT nom, couleur FROM fruit");

/* Récupère la première colonne depuis la ligne suivante d'un jeu de résultats */
print("Récupère la première colonne depuis la ligne suivante d'un jeu de résultats :\n");
$result $sth->fetchColumn();

"Récupère la deuxième colonne depuis la ligne suivante d'un jeu de résultats :\n");
$result $sth->fetchColumn(1);

L'exemple ci-dessus va afficher :

Récupère la première colonne depuis la ligne suivante d'un jeu de résultats :
Récupère la deuxième colonne depuis la ligne suivante d'un jeu de résultats :

Voir aussi

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