From: [EMAIL PROTECTED]
Operating system: Win2000
PHP version: 4.1.2
PHP Bug Type: MSSQL related
Bug description: Stored Procedure Parameters is_null issue
The problem is with executing a stored procedure with a null-value varchar
output parameter.
Steps...
1) create any SP that has a varchar(200) input/output param
e.g.
create procedure Test
(
@TestVarchar varchar(200) = null output
)
as
select @TestVarchar = 'Successful parameter feedback';
2) Run stored procedure using following statements...
$ConnectionObj = mssql_connect($DB_SERVER_NAME, $DB_USER, $DB_PASSWORD);
$aStatement = mssql_init("dbo.test", $ConnectionObj);
mssql_bind($aStatement, "RETVAL", &$RetVal, SQLINT4);
mssql_bind($aStatement, "@TestVarchar", &$Value, SQLVARCHAR, TRUE, TRUE,
200);
$ExecResult = mssql_execute($aStatement);
When PHP executes the SP it defines the parameter as VARCHAR(0) when it
should be VARCHAR(200).
I've run SQL Profiler and it shows...
declare @P1 varchar(0)
set @P1=NULL
exec dbo.test @P1 output
select @P1
when it should be
declare @P1 varchar(200)
set @P1=NULL
exec dbo.test @P1 output
select @P1
If you change the bind statement so that the @TestVarchar parameter is not
null then the whole thing works.
--
Edit bug report at http://bugs.php.net/?id=16496&edit=1
--
Fixed in CVS: http://bugs.php.net/fix.php?id=16496&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=16496&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=16496&r=needtrace
Try newer version: http://bugs.php.net/fix.php?id=16496&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=16496&r=support
Expected behavior: http://bugs.php.net/fix.php?id=16496&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=16496&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=16496&r=submittedtwice