Some not so obvious but imported notes:
1) You must always use the original statement return when fetching the next result set.
2) You can not remove a reference to a previous result set if you wish to access another result set.
----------------WILL NOT WORK-------------------------
<?php
$originalStatementReturn = db2_exec($conn, 'CALL multiResults()');
$firstResultHolder = db2_next_result($originalStatementReturn);
$secondResultHolder = db2_next_result($firstResultHolder);
if ($secondResultHolder) {
while ($row = db2_fetch_array($secondResultHolder)) {
print_r($row);
}
}
?>
-----------------------------------------------------------------
----------------WILL NOT WORK-------------------------
<?php
$originalStatementReturn = db2_exec($conn, 'CALL multiResults()');
$resultHolder = db2_next_result($originalStatementReturn);
$resultHolder = db2_next_result($originalStatementReturn);
if ($resultHolder) {
while ($row = db2_fetch_array($resultHolder)) {
print_r($row);
}
}
?>
-----------------------------------------------------------------
----------------WILL WORK--------------------------------
<?php
$originalStatementReturn = db2_exec($conn, 'CALL multiResults()');
$firstResultHolder = db2_next_result($originalStatementReturn);
$secondResultHolder = db2_next_result($originalStatementReturn);
if ($secondResultHolder) {
while ($row = db2_fetch_array($secondResultHolder)) {
print_r($row);
}
}
?>
-----------------------------------------------------------------db2_next_result
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
db2_next_result
Референца за `function.db2-next-result.php` со подобрена типографија и навигација.
db2_next_result
("PECL ibm_db2" >= 1.0.0)
db2_next_result — Бара следната група на резултати од зачувана процедура
= NULL
Бара следната група на резултати од складирана процедура db2_next_result() Складирана процедура може да врати нула или повеќе групи на резултати. Додека ја обработувате првата група на резултати на ист начин како што би ги обработувале резултатите вратени од едноставна SELECT изјава, за да ги добиете втората и следните групи на резултати од складирана процедура мора да ја повикате
Параметри
stmt- Подготвена изјава вратена од db2_exec() or db2_execute().
Вратени вредности
функцијата и да го вратите резултатот на уникатно именувана PHP променлива. false Враќа нов ресурс на изјава што содржи следната група на резултати ако складираната процедура вратила друга група на резултати. Враќа
Примери
ако складираната процедура не вратила друга група на резултати.
Пример #1 Повикување на складирана процедура што враќа повеќе групи на резултати db2_next_result() function.
<?php
$conn = db2_connect($database, $user, $password);
if ($conn) {
$stmt = db2_exec($conn, 'CALL multiResults()');
print "Fetching first result set\n";
while ($row = db2_fetch_array($stmt)) {
var_dump($row);
}
print "\nFetching second result set\n";
$res = db2_next_result($stmt);
if ($res) {
while ($row = db2_fetch_array($res)) {
var_dump($row);
}
}
print "\nFetching third result set\n";
$res2 = db2_next_result($stmt);
if ($res2) {
while ($row = db2_fetch_array($res2)) {
var_dump($row);
}
}
db2_close($conn);
}
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
Fetching first result set
array(2) {
[0]=>
string(16) "Bubbles "
[1]=>
int(3)
}
array(2) {
[0]=>
string(16) "Gizmo "
[1]=>
int(4)
}
Fetching second result set
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"
}
Fetching third result set
array(1) {
[0]=>
string(16) "Bubbles "
}
array(1) {
[0]=>
string(16) "Gizmo "
}