Maison > Article > base de données > Comment puis-je récupérer plusieurs ensembles de résultats à partir de plusieurs requêtes à l'aide de PDO_MYSQLND ?
Exécuter plusieurs requêtes avec PDO
Dans PHP version 5.3, le pilote PDO_MYSQL a été remplacé par PDO_MYSQLND, qui a introduit la prise en charge de plusieurs requêtes. Cependant, l'obtention de plusieurs ensembles de résultats à partir de ces requêtes peut prêter à confusion.
Défi :
L'exécution de plusieurs requêtes SELECT à l'aide de la méthode query() de PDO_MYSQLND ne renvoie que le premier ensemble de résultats. Par exemple :
$db->query("SELECT 1; SELECT 2;")->fetchAll(PDO::FETCH_ASSOC);
Ce code ne renverra que le résultat de la première requête, qui est :
array(1) { [0]=> array(1) { [1]=> string(1) "1" } }
Solution :
Pour récupérer les jeux de résultats suivants, vous devez utiliser la méthode PDOStatement::nextRowset().
$stmt = $db->query("SELECT 1; SELECT 2;"); $stmt->nextRowset(); var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
Cela permettra renvoie le résultat de la deuxième requête.
Implémentation :
Cette implémentation peut sembler un peu particulière car il serait plus pratique si plusieurs requêtes renvoyaient tous les résultats sous un seul tableau . Cependant, cette conception permet de récupérer chaque ensemble de résultats en utilisant différents styles de récupération.
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!