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);
mssql_next_result
(PHP 4 >= 4.0.5, PHP 5, PECL odbtp:1.1.1-1.1.4)
mssql_next_result — Bewegt den internen Ergebnis-Zeiger zum nächsten Ergebnis
Beschreibung
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
- Ergebniskennung
-
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
$link = mssql_connect("localhost", "benutzer", "geheim");
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);
?>
mssql_next_result
08-Dec-2003 05:40
09-Dec-2002 08:39
It seems that mssql_next_result does not work with result sets returned by stored procedures.
28-Jun-2002 08: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.
