I am not sure what is wrong. its returning empty DataSet

PHP Code:
function login($username)
        {

            
$this->list = array();
            
$conn =& $this->_CORE->conn;

            
$sql $conn->PrepareSP($this->_MD['sp_PERSONS_AUTH']);

            
$username $this->correctUsername($username);
            
$conn->InParameter($sql,$username,'USERNAME');
            
$conn->OutParameter($sql,$active,'ACTIVE');
            
$conn->OutParameter($sql,$active,'RETVAL');


            
$rs $conn->Execute($sql);

            
print_r($rs)

            if(!
$rs)
            {
                
$this->SetError($conn->ErrorMsg());
            }
            return 
$active;
        }
private function 
correctUsername($username)
        {
            return 
str_replace($this->_MD['PREFIX_USERNAME'],'',$username);
        } 
Code:
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_PERSONS_AUTH]') AND type in (N'P'))
DROP PROCEDURE [dbo].[sp_PERSONS_AUTH]
GO

-- ================================================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--
-- Use the Specify Values for Template Parameters 
-- command (Ctrl-Shift-M) to fill in the parameter 
-- values below.
--
-- This block of comments will not be included in
-- the definition of the procedure.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE  sp_PERSONS_AUTH--<Procedure_Name, sysname, ProcedureName> 
	-- Add the parameters for the stored procedure here
	@USERNAME			varchar(50)	= '',
	@ACTIVE				INT			OUTPUT
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	DECLARE @ERR INT;
	
	
    -- Insert statements for procedure here
	--SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>
	SELECT @ACTIVE = ACTIVE FROM PERSONS WHERE USERNAME=@USERNAME

	SELECT @ERR = @@ERROR;
	IF (@ERR <> 0 ) GOTO HANDLE_ERROR;
	if(@ACTIVE IS NULL) GOTO HANDLE_NOT_ACTIVE


	GOTO EXIT_PROC
END


HANDLE_ERROR:
	ROLLBACK TRAN
	SELECT @ACTIVE = 0;
	SELECT @ERR = -1;
	GOTO EXIT_PROC
HANDLE_NOT_ACTIVE:
	SELECT @ACTIVE = 0
	SELECT @ERR = -1
EXIT_PROC:
	RETURN @ERR;
GO