(PECL ibm_db2 >= 1.0.0)
db2_next_result — Запрашивает следующий набор результатов из хранимой процедуры
Хранимая процедура может возвращать ноль или более наборов результатов. Хотя вы обрабатываете первый набор результатов точно так же, как и результаты, возвращаемые простым оператором SELECT, для получения второго и последующих наборов результатов из хранимой процедуры вы должны вызвать функцию db2_next_result() и вернуть результат в переменную PHP с уникальным именем.
Возвращает новый ресурс оператора, содержащий следующий набор результатов,
если хранимая процедура вернула другой набор результатов.
Возвращает false, если хранимая процедура не вернула другой набор результатов.
Пример #1 Вызов хранимой процедуры, возвращающей несколько наборов результатов
В следующем примере вызывается хранимая процедура, которая возвращает три набора результатов. Первый набор результатов извлекается непосредственно из того же ресурса операторов, для которого вызывается оператор CALL, а второй и третий наборы результатов извлекаются из ресурсов операторов, возвращаемых вызовами функции db2_next_result().
<?php
$conn = db2_connect($database, $user, $password);
if ($conn) {
$stmt = db2_exec($conn, 'CALL multiResults()');
print "Получение первого набора результатов\n";
while ($row = db2_fetch_array($stmt)) {
var_dump($row);
}
print "\nПолучение второго набора результатов\n";
$res = db2_next_result($stmt);
if ($res) {
while ($row = db2_fetch_array($res)) {
var_dump($row);
}
}
print "\nПолучение третьего набора результатов\n";
$res2 = db2_next_result($stmt);
if ($res2) {
while ($row = db2_fetch_array($res2)) {
var_dump($row);
}
}
db2_close($conn);
}
?>Результат выполнения приведённого примера:
Получение первого набора результатов
array(2) {
[0]=>
string(16) "Bubbles "
[1]=>
int(3)
}
array(2) {
[0]=>
string(16) "Gizmo "
[1]=>
int(4)
}
Получение второго набора результатов
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"
}
Получение третьего набора результатов
array(1) {
[0]=>
string(16) "Bubbles "
}
array(1) {
[0]=>
string(16) "Gizmo "
}