Maison > base de données > tutoriel mysql > Comment puis-je récupérer plusieurs ensembles de résultats à partir de plusieurs requêtes à l'aide de PDO_MYSQLND ?

Comment puis-je récupérer plusieurs ensembles de résultats à partir de plusieurs requêtes à l'aide de PDO_MYSQLND ?

DDD
Libérer: 2024-11-20 04:11:02
original
986 Les gens l'ont consulté

How Can I Retrieve Multiple Result Sets from Multiple Queries Using 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);
Copier après la connexion

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"
  }
}
Copier après la connexion

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));
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal