(PECL ibm_db2 >= 1.0.0)
db2_next_result — Solicitar el siguiente resultado de un procedimiento almacendo
$stmt
) : resourceUn 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.
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.
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 " }