Mysql
 sql >> Base de données >  >> RDS >> Mysql

appeler une procédure stockée imbriquée à partir de php

Depuis PHP, vous ne regardez que le PREMIER jeu de résultats. À partir de la ligne de commande, il crache simplement tous les ensembles de résultats.

Chaque appel de procédure stocké que vous avez ci-dessus génère un nouvel ensemble de résultats unique (différents champs possibles, etc.)

Pour résoudre ce problème, vous pouvez passer au jeu de résultats suivant, s'il existe :

Utilisez odbc_next_result ( resource $result_id )

Alternativement, en utilisant Mysqli, vous pouvez utiliser ces trois commandes :

$result =$connection->multi_query("select * from foo....");$result =$connection->store_result();$connection->next_result();

En utilisant votre code comme exemple, vous pouvez envelopper votre code qui produit des résultats dans une boucle do..while comme ceci :

$result= $mysqli->multi_query("SELECT first_id,second_id from pair_find");

do {
  $result = $mysqli->store_result();

  while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
  {
     print_r($row);
  }
} while ($mysqli->next_result());

http://php.net/manual/en/function.odbc -next-result.php

http://php.net/manual/en/mysqli.next-result .php