ID: 24595 Updated by: [EMAIL PROTECTED] Reported By: hans at velum dot net -Status: Feedback +Status: Bogus Bug Type: MSSQL related Operating System: Windows XP PHP Version: 5.0.0b1 (beta1) New Comment:
Same as bug #21089 Previous Comments: ------------------------------------------------------------------------ [2003-08-06 10:38:26] brian_caughlin at hotmail dot com This is to confirm that the same behaviour manifests itself in the latest CVS snapshot, and also that the methods described in the comments for Bug #21089 apply here. This appears to be a change that took place in 4.3 which continues to apply to 5.0. The documentation should be updated to reflect this change. ------------------------------------------------------------------------ [2003-08-05 18:32:42] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php4-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-STABLE-latest.zip and also read the comments in bug #21089 ------------------------------------------------------------------------ [2003-08-05 13:31:56] brian_caughlin at hotmail dot com By the way, it looks like this bug may be a duplicate of Bug #21089. Perhaps this is simply an undocumented change. ------------------------------------------------------------------------ [2003-08-05 12:20:15] brian_caughlin at hotmail dot com I ran into this issue myself in 4.3.2, and found that the workaround is to use the mssql_next_result() function before attempting to access the retval and any output parameters. I also found that I don't need to pass the variables by reference. Here is the code that works for me in 4.3.2: <?php $conn=mssql_connect("myhost","user","pwd"); if ($conn) { mssql_select_db("mydb",$conn); $stmt=mssql_init("procedure",$conn); mssql_bind($stmt,"RETVAL",$val,SQLINT4); $ival=11; $fval=2.1416; $sval="Frank"; mssql_bind($stmt,"@sval",$sval,SQLVARCHAR,TRUE); mssql_bind($stmt,"@intval",$ival,SQLINT4,TRUE); mssql_bind($stmt,"@floatval",$fval,SQLFLT8,TRUE); $result=mssql_execute($stmt); $arr=mssql_fetch_row($result); print ("Answer: " . $arr[0] . " " ); mssql_next_result($result); print ("RETVAL = $val ; intval = $ival ; floatval = $fval ; string = $sval"); mssql_close($conn); } else print("ooops!"); ?> I hope this helps! ------------------------------------------------------------------------ [2003-07-10 14:38:29] hans at velum dot net Yes, I verified that this is also happening with 4.3.2. I thought, based on a comment in the manual, that this was not an issue in the 4.3.2 release. I also verified that the bound values are making it *into* the stored procedure w/o incident. (E.g. I can add them to the returned result row to see that the stored procedure is aware of the values.) ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/24595 -- Edit this bug report at http://bugs.php.net/?id=24595&edit=1