mssql_next_result

(PHP 4 >= 4.0.5, PHP 5)

mssql_next_result -- Move the internal result pointer to the next result

Description

bool mssql_next_result ( resource result_id )

When sending more than one SQL statement to the server or executing a stored procedure with multiple results, it will cause the server to return multiple result sets. This function will test for additional results available form the server. If an additional result set exists it will free the existing result set and prepare to fetch the rows from the new result set. The function will return TRUE if an additional result set was available or FALSE otherwise.

例子 1. mssql_next_result() example

<?php
    $link
= mssql_connect("localhost", "userid", "secret");
    
mssql_select_db("MyDB", $link);
    
$SQL = "Select * from table1 select * from table2";
    
$rs = mssql_query($SQL, $link);
    do {
        while (
$row = mssql_fetch_row($rs)) {
        }
    } while (
mssql_next_result($rs));
    
mssql_free_result($rs);
    
mssql_close($link);
?>

add a note add a note User Contributed Notes
mail_umesh at yahoo dot com
08-Dec-2003 09:40
you cant return multiple values from store proc but you can return multiple resultset, so you can use mssql_next_result()

eg..

   $stmt =  mssql_init("AuthLoginUser", $objDBH);
   mssql_bind($stmt,"@LoginUser",$LoginUser,SQLVARCHAR);
   mssql_bind($stmt,"@Password",$strNewPassword,SQLVARCHAR);
   mssql_bind($stmt,"@SessionId",$SessionId,SQLVARCHAR);
   //mssql_bind($stmt,"@ReturnVal",$ReturnVal,SQLVARCHAR,True);
   $rs=mssql_execute($stmt);

   do {
       while ($row = mssql_fetch_row($rs)) {
           echo "$row[0] -- $row[1]<BR>";
       }
   } while (mssql_next_result($rs));
   mssql_free_result($rs);
gagarin[at]i-dep.com
10-Dec-2002 12:39
It seems that mssql_next_result does not work with result sets returned by stored procedures.
m1tk4 at hotmail dot com
28-Jun-2002 11:43
This function does not exist as a Sybase (Sybase-CT) alias, so if you have PHP+FreeTDS||Sybase as a MSSQL client on Unix platform, it will not work.