mssql_next_result

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

mssql_next_resultDéplace le pointeur interne MS SQL Server au résultat suivant

Avertissement

Cette fonction a été SUPPRIMÉE à partir de PHP 7.0.0.

Les alternatives à cette fonction incluent :

Description

mssql_next_result ( resource $result_id ) : bool

Lorsque vous envoyez plus d'une commande SQL au serveur, ou que vous exécutez une procédure stockée avec de multiples résultats, cela va conduire le serveur à retourner plusieurs jeux de lignes. mssql_next_result() va vérifier l'existence de plusieurs résultats disponibles sur le serveur. Si un autre jeu de résultat existe, mssql_next_result() va détruire de résultat précédent et préparer la lecture dans les nouvelles lignes.

Liste de paramètres

result_id

Une ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne TRUE si un jeu de résultats additionnel est disponible, ou FALSE sinon.

Exemples

Exemple #1 Exemple avec mssql_next_result()

<?php
// Connexion à MSSQL et sélection de la base de données
$link mssql_connect('MANGO\SQLEXPRESS''sa''phpfi');
mssql_select_db('php'$link);

// Envoie d'une requête à MSSQL
$sql 'SELECT [name], [age] FROM [php].[dbo].[persons]';
$query mssql_query($sql$link);

// Itération dans les lignes lues
do {
    while (
$row mssql_fetch_row($query))
    {
        
// Gestion des lignes
    
}
} while (
mssql_next_result($query));

// Nettoyage
mssql_free_result($query);
mssql_close($link);
?>

add a note add a note

User Contributed Notes 5 notes

up
1
il cartolaio
14 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.
up
1
mail_umesh at yahoo dot com
21 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
1
m1tk4 at hotmail dot com
22 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
gagarin[at]i-dep.com
22 years ago
It seems that mssql_next_result does not work with result sets returned by stored procedures.
up
0
itsacon at itsacon dot net
16 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.
To Top