Accès aux résultats d'une procédure stockée avec curseur

Accès aux résultats d'une procédure stockée avec curseur - PHP - Programmation

Marsh Posté le 14-01-2016 à 16:22:58    

Bonjour,
 
Je bloque sur un soucis d'accès aux données retournées par une procédure stockée (qui va retourner plusieurs "select" ) contenant un curseur, sachant que l'appel se fait via un prepared statement ...
 
Le code suivant:

Code :
  1. $stmt = $db->prepare($query);
  2. $x = 125; $y = 1;
  3. $stmt->bind_param("ii", $x, $y);
  4. $stmt->execute();
  5. do {
  6.     if ($res = $stmt->get_result()) {
  7.         echo "---";
  8.         var_dump($res->fetch_all());
  9.         mysqli_free_result($res);
  10.     }
  11. } while ($stmt->more_results() && $stmt->next_result());


Marche si la procédure n'utilise pas de curseur, et bloque (la page ne s'affiche pas et reste en chargement infiniment...) si la procédure utilise un curseur.
A noter que si les opérations sur le curseur sont après le dernier "select", il n'y a plus de problème ...  
 
Et le code suivant:

Code :
  1. $stmt = $db->multi_query($query);
  2. do
  3. {
  4.     if ($result = $db->store_result()) {
  5.         while ($row = $result->fetch_row()) {
  6.             var_dump($row);
  7.         }
  8.         $result->free();
  9.     }
  10.     if ($db->more_results()) {
  11.         echo "-----------------" );
  12.     }
  13. }
  14. while ($db->more_results() && $db->next_result());


 
Marche dans tous les cas (mais ne me permet pas d'utiliser un prepared statement).
 
Je n'utilise pas beaucoup ces trucs là dernièrement, je me demande si ce n'est pas une restriction "évidente" mais je n'arrive pas à mettre le doigt dessus.
 
Merci

Reply

Marsh Posté le 14-01-2016 à 16:22:58   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed