Position actuelle: Accueil> Derniers articles> Comment utiliser Pdostatement :: RowCount avec PDO :: Exec

Comment utiliser Pdostatement :: RowCount avec PDO :: Exec

gitbox 2025-05-28

Dans PHP, PDO (PHP Data Objectts) est une extension qui fournit une couche d'abstraction d'accès à la base de données. Il prend en charge plusieurs systèmes de base de données et fournit un moyen unifié d'effectuer des opérations de base de données. PDO :: EXEC et PDOSTATION :: ROWCOUNT sont deux outils courants pour le fonctionnement des bases de données. Il est important de comprendre comment ils sont utilisés et comment ils sont utilisés en combinaison. Cet article expliquera en détail comment utiliser correctement Pdostatement :: RowCount pour obtenir le nombre de lignes affectées après l'exécution de PDO :: EXEC .

1. Introduction à l'APD :: Exec

PDO :: Exec est une méthode dans la classe PDO. Il est généralement utilisé pour exécuter des instructions SQL qui n'ont pas besoin de renvoyer des ensembles de résultats, tels que l'insertion , la mise à jour , la suppression , etc. Il renvoie le nombre de lignes affectées, c'est-à-dire le nombre d'enregistrements de base de données affectés après l'opération. Si l'exécution échoue, il renvoie faux .

Exemple:

 <?php
// Connexion de base de données
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');

// mettre en œuvre SQL Déclaration
$sql = "UPDATE users SET status = 'active' WHERE status = 'inactive'";
$affectedRows = $pdo->exec($sql);

echo "Nombre de lignes affectées: " . $affectedRows;
?>

Dans le code ci-dessus, $ PDO-> EXEC ($ SQL) effectue une opération de mise à jour et renvoie le nombre de lignes affectées.

2. Introduction à Pdostation :: RowCount

Pdostatement :: RowCount est une méthode qui obtient le nombre de lignes affectées par la dernière instruction SQL exécutée. Il convient de noter que la méthode RowCount ne peut obtenir le nombre de lignes affectées lors de l'exécution des requêtes de sélection, ou après les opérations de mise à jour , de supprimer et d'insérer . Pour certaines bases de données, comme MySQL, RowCount peut ne pas renvoyer un nombre exact de lignes, en particulier lors de l'exécution des instructions de suppression ou de mise à jour , le nombre de lignes supprimées ou mises à jour peut être différente du nombre réel de lignes affectées.

Exemple:

 <?php
// Connexion de base de données
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');

// mettre en œuvre SQL Déclaration
$stmt = $pdo->prepare("UPDATE users SET status = 'active' WHERE status = 'inactive'");
$stmt->execute();

// 获取Nombre de lignes affectées
$affectedRows = $stmt->rowCount();

echo "Nombre de lignes affectées: " . $affectedRows;
?>

Dans le code ci-dessus, préparez d'abord l'instruction SQL via la méthode de préparation et exécutez-la via EXECUTE . Après cela, le nombre de lignes affecté est obtenu via la méthode RowCount .

3. Utilisez PDO :: Exec avec Pdostation :: RowCount

Dans le développement réel, PDO :: EXEC et PDOSTATION :: RowCount doivent souvent être utilisés en combinaison. Bien que PDO :: Exec lui-même renvoie le nombre de lignes affectées, si vous souhaitez effectuer plus de requêtes ou si vous souhaitez faire fonctionner la base de données plus flexible, Pdostation :: RowCount peut être plus appropriée.

Par exemple, nous pouvons utiliser PDO :: EXEC pour exécuter certaines instructions SQL qui n'ont pas besoin de renvoyer le jeu de résultats, puis d'utiliser Pdostatement :: RowCount pour obtenir le nombre de lignes affectées après l'exécution de l'instruction.

Exemple:

 <?php
// Connexion de base de données
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');

// mettre en œuvre SQL Déclaration
$sql = "UPDATE users SET status = 'active' WHERE status = 'inactive'";
$pdo->exec($sql);

// utiliser rowCount 获取Nombre de lignes affectées
$stmt = $pdo->prepare("SELECT * FROM users WHERE status = 'active'");
$stmt->execute();
$affectedRows = $stmt->rowCount();

echo "Nombre de lignes affectées: " . $affectedRows;
?>

Dans le code ci-dessus, nous exécutons d'abord l'opération de mise à jour via EXEC , puis exécutons une requête sélectionnée via Préparez et exécutez pour obtenir le nombre de lignes affectées.

4. Résumé

Grâce à l'introduction de cet article, nous pouvons voir que PDO :: Exec et Pdostation :: RowCount sont deux méthodes très utiles qui peuvent nous aider à mieux faire fonctionner la base de données. Il convient de noter que la méthode PDO :: EXEC renvoie le nombre de lignes affectées lors de l'exécution de l'instruction SQL, tandis que la méthode PDOSTATION :: RowCount est généralement utilisée pour renvoyer le nombre de lignes affectées par la dernière requête exécutée. Pendant le processus de développement, l'utilisation de ces deux méthodes peut raisonnablement vous permettre d'interagir plus efficacement avec la base de données.

Références