En el siguiente ejemplo, se llama a un procedimiento que devuelve tres
conjuntos de resultados. El primer conjunto de resultados se recupera directamente
de la misma recurso sobre la cual se invocó una consulta CALL, mientras que
el segundo y tercer conjuntos de resultados se recuperan de las recursos
devueltas por la llamada a la función
db2_next_result().
<?php
$conn = db2_connect($database, $user, $password);
if ($conn) {
$stmt = db2_exec($conn, 'CALL multiResults()');
print "Recuperación del primer conjunto de resultados\n";
while ($row = db2_fetch_array($stmt)) {
var_dump($row);
}
print "\nRecuperación del segundo conjunto de resultados\n";
$res = db2_next_result($stmt);
if ($res) {
while ($row = db2_fetch_array($res)) {
var_dump($row);
}
}
print "\nRecuperación del tercer conjunto de resultados\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:
Recuperación del primer conjunto de resultados
array(2) {
[0]=>
string(16) "Bubbles "
[1]=>
int(3)
}
array(2) {
[0]=>
string(16) "Gizmo "
[1]=>
int(4)
}
Recuperación del segundo conjunto de resultados
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"
}
Recuperación del tercer conjunto de resultados
array(1) {
[0]=>
string(16) "Bubbles "
}
array(1) {
[0]=>
string(16) "Gizmo "
}