db2_next_result

(PECL ibm_db2 >= 1.0.0)

db2_next_result Solicitar el siguiente resultado de un procedimiento almacendo

Descripción

db2_next_result ( resource $stmt ) : resource

Un procedimiento almacenado puede o no devolver bloques de resultados. El primer resultado devuelto se maneja de la misma manera que se manejan los resultados devueltos por una sentencia SELECT normal, en cambio, para extraer el segundo y los siguientes bloques de un procedimiento almacenado se debe llamar a db2_next_result() y almacenar el resultado en una variable de PHP.

Parámetros

stmt

Una sentencia preparada devuelta por db2_exec() o db2_execute().

Valores devueltos

La función devuelve un nuevo recurso de sentencia que contiene el siguiente bloque de resultados si el procedimiento almacenado regresa otro bloque de resultados. La función devuelve FALSE si el procedimiento almacenado no regresa otro resultado.

Ejemplos

Ejemplo #1 Llamando a un procedimiento almacenado que devuelve múltiples resultados

En el siguiente ejemplo, se llama a un procedimiento almacenado que devuelve tres bloques de resultados. El primer resultado se extrae directamente con el mismo recurso de sentencia que invoca a la instrucción CALL, el segundo y el tercer resultado se extraen con un recurso de sentencia devuelto por db2_next_result().

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

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

  print 
"Fetching first result set\n";
  while (
$row db2_fetch_array($stmt)) {
    
var_dump($row);
  }

  print 
"\nFetching second result set\n";
  
$res db2_next_result($stmt);
  if (
$res) {
    while (
$row db2_fetch_array($res)) {
      
var_dump($row);
    }
  }

  print 
"\nFetching third result set\n";
  
$res2 db2_next_result($stmt);
  if (
$res2) {
    while (
$row db2_fetch_array($res2)) {
      
var_dump($row);
    }
  }

  
db2_close($conn);
}
?>

El resultado del ejemplo sería:

Fetching first result set
array(2) {
  [0]=>
  string(16) "Bubbles         "
  [1]=>
  int(3)
}
array(2) {
  [0]=>
  string(16) "Gizmo           "
  [1]=>
  int(4)
}

Fetching second result set
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"
}

Fetching third result set
array(1) {
  [0]=>
  string(16) "Bubbles         "
}
array(1) {
  [0]=>
  string(16) "Gizmo           "
}