Запрашивает следующий набор результатов из хранимой процедуры

# db2_next_result

(PECL ibm_db2 >= 1.0.0)

db2_next_result — Запрашивает следующий набор результатов из хранимой процедуры

### Описание

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

Хранимая процедура может возвращать ноль или более наборов результатов. Хотя вы обрабатываете первый набор результатов точно так же, как и результаты, возвращаемые простым оператором SELECT, для получения второго и последующих наборов результатов из хранимой процедуры вы должны вызвать функцию db2_next_result() и вернуть результат в переменную PHP с уникальным именем.

### Список параметров

`stmt`
  Подготовленный оператор, возвращаемый функцией db2_exec() или db2_execute().

### Возвращаемые значения

Возвращает новый ресурс оператора, содержащий следующий набор результатов, если хранимая процедура вернула другой набор результатов. Возвращает `false`, если хранимая процедура не вернула другой набор результатов.

### Примеры

Пример #1 Вызов хранимой процедуры, возвращающей несколько наборов результатов

В следующем примере вызывается хранимая процедура, которая возвращает три набора результатов. Первый набор результатов извлекается непосредственно из того же ресурса операторов, для которого вызывается оператор CALL, а второй и третий наборы результатов извлекаются из ресурсов операторов, возвращаемых вызовами функции db2_next_result().

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

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

      print "Получение первого набора результатов\n";
      while ($row = db2_fetch_array($stmt)) {
        var_dump($row);
      }

      print "\nПолучение второго набора результатов\n";
      $res = db2_next_result($stmt);
      if ($res) {
        while ($row = db2_fetch_array($res)) {
          var_dump($row);
        }
      }

      print "\nПолучение третьего набора результатов\n";
      $res2 = db2_next_result($stmt);
      if ($res2) {
        while ($row = db2_fetch_array($res2)) {
          var_dump($row);
        }
      }

      db2_close($conn);
    }
    ?>

Результат выполнения приведённого примера:

    Получение первого набора результатов
    array(2) {
      [0]=>
      string(16) "Bubbles         "
      [1]=>
      int(3)
    }
    array(2) {
      [0]=>
      string(16) "Gizmo           "
      [1]=>
      int(4)
    }

    Получение второго набора результатов
    array(4) {
      [0]=>
      string(16) "Sweater         "
      [1]=>
      int(6)
      [2]=>
      string(5) "llama"
      [3]=>
      string(6) "150.00"
    }
    array(4) {
      [0]=>
      string(16) "Smarty          "
      [1]=>
      int(2)
      [2]=>
      string(5) "horse"
      [3]=>
      string(6) "350.00"
    }

    Получение третьего набора результатов
    array(1) {
      [0]=>
      string(16) "Bubbles         "
    }
    array(1) {
      [0]=>
      string(16) "Gizmo           "
    }

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