(PECL ibm_db2 >= 1.0.0)
db2_next_result — Solicita o próximo conjunto de resultados de um procedimento armazenado
Um procedimento armazenado pode retornar zero ou mais conjuntos de resultados. Enquanto se manipula o primeiro conjunto de resultados exatamente da mesma forma que seriam manipulado os resultados retornados por uma instrução SELECT simples, para buscar o segundo conjunto de resultados e os subsequentes de um procedimento armazenado, deve-se chamar a função db2_next_result() e retornar o resultado para uma variável PHP com nome exclusivo.
Retorna um novo recurso de instrução contendo o próximo conjunto de resultados se o
procedimento armazenado retornou outro conjunto de resultados. Retorna false
se o
procedimento armazenado não retornou outro conjunto de resultados.
Exemplo #1 Chamando um procedimento armazenado que retorna vários conjuntos de resultados
No exemplo a seguir, é chamado um procedimento armazenado que retorna três conjuntos de resultados. O primeiro conjunto de resultados é buscado diretamente do mesmo recurso de instrução no qual a instrução CALL é invocada, enquanto o segundo e o terceiro conjuntos de resultados são buscados de recursos de instrução retornados de nossas chamadas para a função db2_next_result().
<?php
$conn = db2_connect($database, $user, $password);
if ($conn) {
$stmt = db2_exec($conn, 'CALL multiResults()');
print "Buscando o primeiro conjunto de resultados\n";
while ($row = db2_fetch_array($stmt)) {
var_dump($row);
}
print "\nBuscando o segundo conjunto de resultados\n";
$res = db2_next_result($stmt);
if ($res) {
while ($row = db2_fetch_array($res)) {
var_dump($row);
}
}
print "\nBuscando o terceiro conjunto de resultados\n";
$res2 = db2_next_result($stmt);
if ($res2) {
while ($row = db2_fetch_array($res2)) {
var_dump($row);
}
}
db2_close($conn);
}
?>
O exemplo acima produzirá:
Buscando o primeiro conjunto de resultados array(2) { [0]=> string(16) "Bubbles " [1]=> int(3) } array(2) { [0]=> string(16) "Gizmo " [1]=> int(4) } Buscando o segundo conjunto de resultados 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" } Buscando o terceiro conjunto de resultados array(1) { [0]=> string(16) "Bubbles " } array(1) { [0]=> string(16) "Gizmo " }