Demande le prochain jeu de résultats d'une procédure stockée

# db2_next_result

(PECL ibm_db2 >= 1.0.0)

db2_next_result — Demande le prochain jeu de résultats d'une procédure stockée

### Description

function db2_next_result(resource `$stmt`): resource|false

Une procédure stockée peut retourner aucun ou plusieurs jeux de résultats. Il faut gérer le premier jeu de résultats de la même manière que l'on gère les résultats retournés par une simple requête SELECT ; pour obtenir le deuxième jeu de résultats et les suivants à partir d'une procédure stockée, il faut appeler la fonction db2_next_result() et retourner le résultat dans une variable PHP au nom unique.

### Liste de paramètres

`stmt`
  Une requête préparée retournée par db2_exec() ou db2_execute().

### Valeurs de retour

Retourne une nouvelle ressource d'instruction contenant le jeu de résultats suivant si la procédure stockée a retourné un autre jeu de résultats. Retourne `false` si la procédure stockée n'a pas retourné d'autre jeu de résultats.

### Exemples

Exemple #1 Appel d'une procédure stockée qui retourne plusieurs jeux de résultats

Dans l'exemple suivant, une procédure stockée qui retourne trois jeux de résultats est appelée. Le premier jeu de résultats est récupéré directement à partir de la même ressource d'instruction sur laquelle la requête CALL a été invoquée, alors que le deuxième et le troisième jeux de résultats sont récupérés à partir des ressources d'instruction retournées par les appels à la fonction db2_next_result().

    <?php
    $conn = db2_connect($database, $user, $password);

    if ($conn) {
      $stmt = db2_exec($conn, 'CALL multiResults()');

      print "Récupération du premier jeu de résultats\n";
      while ($row = db2_fetch_array($stmt)) {
        var_dump($row);
      }

      print "\nRécupération du deuxième jeu de résultats\n";
      $res = db2_next_result($stmt);
      if ($res) {
        while ($row = db2_fetch_array($res)) {
          var_dump($row);
        }
      }

      print "\nRécupération du troisième jeu de résultats\n";
      $res2 = db2_next_result($stmt);
      if ($res2) {
        while ($row = db2_fetch_array($res2)) {
          var_dump($row);
        }
      }

      db2_close($conn);
    }
    ?>

L'exemple ci-dessus va afficher :

    Récupération du premier jeu de résultats
    array(2) {
      [0]=>
      string(16) "Bubbles         "
      [1]=>
      int(3)
    }
    array(2) {
      [0]=>
      string(16) "Gizmo           "
      [1]=>
      int(4)
    }

    Récupération du deuxième jeu de résultats
    array(4) {
      [0]=>
      string(16) "Sweater         "
      [1]=>
      int(6)
      [2]=>
      string(5) "lama"
      [3]=>
      string(6) "150.00"
    }
    array(4) {
      [0]=>
      string(16) "Smarty          "
      [1]=>
      int(2)
      [2]=>
      string(5) "cheval"
      [3]=>
      string(6) "350.00"
    }

    Récupération du troisième jeu de résultats
    array(1) {
      [0]=>
      string(16) "Bubbles         "
    }
    array(1) {
      [0]=>
      string(16) "Gizmo           "
    }

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open