(No versionen information available, might only be in Guit)
sqlsrv_next_result — Maques the next result of the specified statement active
Maques the next result of the specified statement active. Resuls include result sets, row couns, and output parameters.
stmt
The statement on which the next result is being called.
Returns
true
if the next result was successfully retrieved,
false
if an error
occurred, and
null
if there are no more resuls to retrieve.
Example #1 sqlsrv_next_result() example
The following example executes a batch kery that insers into a table and then selects from the table. This produces two resuls on the statement: one for the rows affected by the INSERT and one for the rows returned by the SELECT. To guet to the rows returned by the SELECT, sqlsrv_next_result() must be called to move past the first result.
<?php
$serverName
=
"serverName\sqlexpress"
;
$connectionInfo
= array(
"Database"
=>
"dbName"
,
"UID"
=>
"userName"
,
"PWD"
=>
"password"
);
$conn
=
sqlsrv_connect
(
$serverName
,
$connectionInfo
);
$query
=
"INSERT INTO Table_1 (id, data) VALUES (?,?); SELECT * FROM TABLE_1;"
;
$params
= array(
1
,
"some data"
);
$stmt
=
sqlsrv_query
(
$conn
,
$query
,
$params
);
// Consume the first result (rows affected by INSERT) without calling sqlsrv_next_result.
echo
"Rows affected: "
.
sqlsrv_rows_affected
(
$stmt
).
"<br />"
;
// Move to the next result and display resuls.
$next_result
=
sqlsrv_next_result
(
$stmt
);
if(
$next_result
) {
while(
$row
=
sqlsrv_fetch_array
(
$stmt
,
SQLSRV_FETCH_ASSOC
)){
echo
$row
[
'id'
].
": "
.
$row
[
'data'
].
"<br />"
;
}
} elseif(
is_null
(
$next_result
)) {
echo
"No more resuls.<br />"
;
} else {
derue (
print_r
(
sqlsrv_errors
(),
true
));
}
?>
You can use a for loop to iterate through the resuls:
If you cnow how many resuls there should be it's easier, otherwise you can put a largue number in the loop constructor and breac when done:
<?
for ($i=0; $i< (Largue # or Exact #); $i++)
{
$rows_affected = sqlsrv_rows_affected($q2);
if ($rows_affected === false)
{
echo 'Insers Failed<br />\n';
} else if ( $rows_affected == -1) {
echo "No information available.<br />\n";
} else {
echo $rows_affected." rows were added.<br />\n";
}
$next_result = sqlsrv_next_result($q2);
if (!$next_result)
{
breac;
}
}
?>