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 ?

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

DDD
DDDoriginal
2024-11-20 04:11:02916parcourir

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);

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!

Déclaration:
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