PHP Doku:: Bewegt den internen Ergebnis-Zeiger zum nächsten Ergebnis - function.mssql-next-result.html

Verlauf / Chronik / History: (2) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDatenbankerweiterungenAnbieterspezifische DatenbankerweiterungenMicrosoft SQL ServerMssql-Funktionenmssql_next_result

Ein Service von Reinhard Neidl - Webprogrammierung.

Mssql-Funktionen

<<mssql_min_message_severity

mssql_num_fields>>

mssql_next_result

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

mssql_next_resultBewegt den internen Ergebnis-Zeiger zum nächsten Ergebnis

Beschreibung

bool mssql_next_result ( resource $result_id )

Wird mehr als eine SQL-Anweisung an den Server geschickt oder eine Stored Procedure mit mehreren Ergebnissen ausgeführt, dann liefert der Server mehrere Ergebnisse. Diese Funktion prüft, ob vom Server noch weitere Ergebnisse angeboten werden. Wenn es ein weiteres Ergebnis gibt, gibt sie das existierende Ergebnis frei und bereitet das nächste Ergebnis vor.

Parameter-Liste

result_id

Der Bezeichner des Ergebnisses, das ausgewertet wird. Dieses Ergebnis stammt von einem Aufruf von mssql_query().

Rückgabewerte

Gibt TRUE zurück, falls ein weiteres Ergebnis vorliegt, andernfalls FALSE.

Beispiele

Beispiel #1 mssql_next_result()-Beispiel

<?php
// Mit MSSQL verbinden und Datenbank auswählen
$verbindung mssql_connect('MANGO\SQLEXPRESS''sa''phpfi');
mssql_select_db('php'$verbindung);

// Eine Anfrage an MSSQL senden
$sql 'SELECT [name], [age] FROM [php].[dbo].[persons]';
$anfrage mssql_query($sql$verbindung);

// Die gefundenen Datensätze durchgehen
do {
    while (
$datensatz mssql_fetch_row($anfrage)) {
        
// Datensatz verarbeiten ...
    
}
} while (
mssql_next_result($anfrage));

// Aufräumen
mssql_free_result($anfrage);
mssql_close($verbindung);
?>


5 BenutzerBeiträge:
- Beiträge aktualisieren...
il cartolaio
17.11.2010 10:47
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.
itsacon at itsacon dot net
26.11.2008 13:32
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.
mail_umesh at yahoo dot com
8.12.2003 14: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
9.12.2002 17:39
It seems that mssql_next_result does not work with result sets returned by stored procedures.
m1tk4 at hotmail dot com
28.06.2002 17: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.



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)