PDOStatement::rowCount
(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDOStatement::rowCount — Retourne le nombre de lignes affectées par le dernier appel à la fonction PDOStatement::execute()
Description
PDOStatement::rowCount() retourne le nombre de lignes affectées par la dernière requête DELETE, INSERT ou UPDATE exécutée par l'objet PDOStatement correspondant.
Si la dernière requête SQL exécutée par l'objet PDOStatement associé est une requête de type SELECT, quelques bases de données retourneront le nombre de lignes retournées par cette requête. Néanmoins, ce comportement n'est pas garanti pour toutes les bases de données et ne devrait pas être exécuté pour des applications portables.
Exemples
Exemple #1 Retourne le nombre de lignes effacées
PDOStatement::rowCount() retourne le nombre de lignes affectées par une requête DELETE, INSERT, ou UPDATE.
<?php
/* Effacement de toutes les lignes de la table FRUIT */
$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();
/* Retourne le nombre de lignes effacées */
print("Retourne le nombre de lignes effacées :\n");
$count = $del->rowCount();
print("Effacement de $count lignes.\n");
?>
L'exemple ci-dessus va afficher :
Retourne le nombre de lignes effacées : Effacement de 9 lignes.
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 :
apple banana orange pear
Voir aussi
- PDOStatement::columnCount() - Retourne le nombre de colonnes dans le jeu de résultats
- PDOStatement::fetchColumn() - Retourne une colonne depuis la ligne suivante d'un jeu de résultats
- PDO::query() - Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement
Version en cache
05/11/2024 11:44:31 Cette version de la page est en cache (à la date du 05/11/2024 11:44:31) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-pdostatement.rowcount.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.