mssql_next_result

(PHP 4 >= 4.0.5, PHP 5, PECL odbtp >= 1.1.1)

mssql_next_resultMuove il puntatore interno al risultato successivo

Descrizione

bool mssql_next_result ( resource $id_risultato )

Nel caso in cui si eseguano più di una istruzione SQL al server, oppure si eseguano delle procedure memorizzate (stored procedure) con possibilità di molteplici risultati, il server restituirà un set di diversi risultati. Questa funzione verifica se esistono ulteriori risultati dal server. Se effettivamente esiste un'altro risultato, questa funzione libera la memoria dal risultato corrente e si predispone per la ricezione del risultato successivo. La funzione restituisce TRUE se è disponibile un'altro risultato, FALSE in caso contrario.

Example #1 mssql_next_result() Esempio di utilizzo

<?php
    $link 
mssql_connect("localhost""utente""password");
    
mssql_select_db("MyDB"$link);
    
$SQL "Select * from tabella1 select * from tabella2";
    
$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 5 notes

up
1
mail_umesh at yahoo dot com
10 years ago
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);
up
0
itsacon at itsacon dot net
6 years ago
When retrieving multiple resultsets from a stored procedure, don't call mssql_free_statement on the statement resource, as any resultsets not yet retrieved will be lost, and mssql_next_result will report no more result sets were available.
up
0
gagarin[at]i-dep.com
11 years ago
It seems that mssql_next_result does not work with result sets returned by stored procedures.
up
0
m1tk4 at hotmail dot com
12 years ago
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.
up
-1
il cartolaio
4 years ago
As of today, this function is defined in FreeTDS (at least in the CVS version) and works perfectly with stored procedures.

Useful to avoid outer joins.
To Top