В следующем примере вызывается хранимая процедура, которая возвращает три набора результатов.
     Первый набор результатов извлекается непосредственно из того же ресурса операторов, для которого вызывается оператор 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           "
}