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 — 次の結果に内部結果ポインタを移動する
説明
bool mssql_next_result
( resource $result_id
)
サーバへ複数の SQL 命令を送信するか複数の結果を有するストアドプロシージャを 実行する場合、この関数はサーバが複数の結果集合を返すようにします。 この関数は、サーバから追加の結果が存在するかどうかを調べます。 追加の結果集合が存在する場合、既存の結果集合を解放し、新しい 結果集合から行を取得するための準備を行います。
返り値
追加の結果集合が取得可能な場合に TRUE、 その他の場合に FALSE を返します。
例
例1 mssql_next_result() の例
<?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);
?>
mssql_next_result
mail_umesh at yahoo dot com
08-Dec-2003 10:40
08-Dec-2003 10:40
gagarin[at]i-dep.com
10-Dec-2002 01:39
10-Dec-2002 01:39
It seems that mssql_next_result does not work with result sets returned by stored procedures.
m1tk4 at hotmail dot com
29-Jun-2002 12:43
29-Jun-2002 12: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.
