(PECL ibm_db2 >= 1.0.0)
db2_next_result — Demande le prochain jeu de résultats d'une procédure stockée
Une procédure stockée peut retourner aucun ou plusieurs jeux de résultats. Il faut gérer le premier jeu de résultats de la même manière que l'on gère les résultats retournés par une simple requête SELECT ; pour obtenir le deuxième jeu de résultats et les suivants à partir d'une procédure stockée, il faut appeler la fonction db2_next_result() et retourner le résultat dans une variable PHP au nom unique.
stmt
Retourne une nouvelle ressource d'instruction contenant le jeu de résultats
suivant si la procédure stockée a retourné un autre jeu de résultats.
Retourne false si la procédure stockée n'a pas retourné d'autre jeu de
résultats.
Exemple #1 Appel d'une procédure stockée qui retourne plusieurs jeux de résultats
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 "
}