Dans l'exemple suivant, une procédure stockée qui retourne trois
jeux de résultats est appelée. Le premier jeu de résultats est récupéré
directement à partir de la même ressource d'instruction sur laquelle la
requête CALL a été invoquée, alors que le deuxième et le troisième jeux
de résultats sont récupérés à partir des ressources d'instruction
retournées par les appels à la fonction
db2_next_result().
<?php
$conn = db2_connect($database, $user, $password);
if ($conn) {
$stmt = db2_exec($conn, 'CALL multiResults()');
print "Récupération du premier jeu de résultats\n";
while ($row = db2_fetch_array($stmt)) {
var_dump($row);
}
print "\nRécupération du deuxième jeu de résultats\n";
$res = db2_next_result($stmt);
if ($res) {
while ($row = db2_fetch_array($res)) {
var_dump($row);
}
}
print "\nRécupération du troisième jeu de résultats\n";
$res2 = db2_next_result($stmt);
if ($res2) {
while ($row = db2_fetch_array($res2)) {
var_dump($row);
}
}
db2_close($conn);
}
?>
L'exemple ci-dessus va afficher :
Récupération du premier jeu de résultats
array(2) {
[0]=>
string(16) "Bubbles "
[1]=>
int(3)
}
array(2) {
[0]=>
string(16) "Gizmo "
[1]=>
int(4)
}
Récupération du deuxième jeu de résultats
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"
}
Récupération du troisième jeu de résultats
array(1) {
[0]=>
string(16) "Bubbles "
}
array(1) {
[0]=>
string(16) "Gizmo "
}