Exemple 2. Comptage des lignes retournées par une requête SELECT
Pour la plupart des bases de données, PDOStatement::rowCount()
ne retourne pas le nombre de lignes affectées par une requête SELECT.
À la place, utilisez PDO::query() pour faire une requête
SELECT COUNT(*), puis utilisez PDOStatement::fetchColumn()
pour récupérer le nombre de lignes retournées. Votre application peut ainsi
effectuer la bonne action.
<?php $sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100"; if ($res = $conn->query($sql)) {
/* Récupère le nombre de lignes qui correspond à la requête SELECT */ if ($res->fetchColumn() > 0) {
/* Effectue la vraie requête SELECT et travaille sur le résultat */ $sql = "SELECT nom FROM fruit WHERE calories > 100"; foreach ($conn->query($sql) as $row) { print "Nom : " . $row['NOM'] . "\n"; } } /* Aucune ligne ne correspond -- faire quelque chose d'autre */ else { print "Aucune ligne ne correspond à la requête."; } }
$res = null; $conn = null; ?>
|
L'exemple ci-dessus va afficher :