Maison > Article > base de données > Comment puis-je récupérer plusieurs ensembles de résultats à partir d’une seule requête MySQL PDO ?
Récupération de plusieurs ensembles de résultats à partir de requêtes multiples PDO
Le pilote PDO_MYSQLND a introduit la prise en charge de plusieurs requêtes dans PHP version 5.3. Cela permet aux utilisateurs d'exécuter plusieurs requêtes SQL à la fois. Cependant, récupérer tous les ensembles de résultats de ces requêtes peut être difficile.
Énoncé du problème
La requête « SELECT 1 ; SELECT 2 ; » exécutera les deux requêtes, mais seul le jeu de résultats de la première requête est renvoyé. Le deuxième ensemble de résultats semble être ignoré.
Solution
Pour récupérer plusieurs ensembles de résultats, la méthode PDOStatement::nextRowset doit être utilisée. Cette méthode avance le curseur au début de l’ensemble de lignes suivant. En appelant nextRowset après la première requête, les utilisateurs peuvent accéder à l'ensemble de résultats de la deuxième requête.
$stmt = $db->query("SELECT 1; SELECT 2;"); $stmt->nextRowset(); var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
Cela renverra l'ensemble de résultats de la deuxième requête.
Avantages et Inconvénients
Cette implémentation permet de récupérer le résultat de chaque requête en utilisant différents styles FETCH. Cependant, cela peut être plus complexe qu’une implémentation qui renvoie simplement tous les jeux de résultats sous un seul tableau. Néanmoins, la capacité de gérer plusieurs résultats de manière flexible peut être précieuse dans certains scénarios.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!