如何在php中获取MSSQL存储过程结果

时间:2013-12-17 14:27:35

标签: php sql stored-procedures

我有一个存储过程数据库,它检查密码并将结果返回为0或1

我怎样才能在php中获得该结果?

    $this->data_selectdb(DB_ACC);
    $stmt = mssql_init('cabal_sp_IsValidPassword_by_ID');

    mssql_bind($stmt, '@UserID', $accountName ,  SQLVARCHAR,  false,  false,  50);
    mssql_bind($stmt, '@Password',  $accountPassword,  SQLVARCHAR,  false,  false,     32);

    mssql_execute($stmt);

    mssql_free_statement($stmt);

存储过程:

ALTER  PROCEDURE [dbo].[cabal_sp_IsValidPassword_by_ID](@UserID varchar(50), @Password    varchar(32))
AS
BEGIN    
DECLARE @Result int
SET @Result = 0

DECLARE @EncryptPassword varbinary(255)
SELECT @EncryptPassword = Password FROM cabal_auth_table with(nolock) WHERE ID =    @UserID

IF(@@ROWCOUNT > 0)
BEGIN
    SET @Result  = PWDCOMPARE(@Password, @EncryptPassword)
END

SELECT @Result
END

1 个答案:

答案 0 :(得分:0)

试试这个:

$result = mssql_execute($stmt);

然后从结果中获取行:

while($row = mssql_fetch_assoc($result))
{ 
    ...
}

我之前从未使用过这个函数,我总是只使用mssql_query函数,但根据this page上的一条评论,我上面给出的代码应该可行。如果有效,请告诉我。