ID: 37209
Updated by: [EMAIL PROTECTED]
Reported By: netvbonline at yahoo dot co dot uk
-Status: Assigned
+Status: Feedback
Bug Type: MSSQL related
Operating System: Win XP Pro
PHP Version: 5.1.2
Assigned To: fmk
New Comment:
Please provide a short example of the procedure used to generate this.
The current implementation will handle multiple results from a storred
procedure and it will skip all results without column.
Previous Comments:
------------------------------------------------------------------------
[2006-04-26 14:34:02] netvbonline at yahoo dot co dot uk
SORRY, BIG TYPO
"The mssql_execute method SHOULD NOT fail on execution (but in anycase
should still have populated output parameters)."
------------------------------------------------------------------------
[2006-04-26 14:32:23] netvbonline at yahoo dot co dot uk
Description:
------------
Using the extension php_mssql.dll and mssql_execute method to execute a
stored procedure within SQL Server 2000.
Basically, if the stored procedure generates a non-fatal message, for
example trying to insert a duplicate value into a table before doing a
big seek then output parameters are still available to Query analyser.
However when using the mssql_execute method, the execution fails.. even
though stored procedure is returning a successful execution value of 0.
Its possible to have a stored procedure with 10 statements, and 5
legitamately may fail with a non fatal message, which is handled
internally by the stored procedure.
The mssql_execute method should fail on execution (any in anycase
should still have populated output parameters).
Cheers.
Reproduce code:
---------------
$hStmt = mssql_init("usp_fetch_or_insert_forename", $hCon);
mssql_bind($hStmt, "@Forename", $name, SQLVARCHAR);
// Output
mssql_bind($hStmt, "@ForenameID", $ForenameID, SQLINT4, TRUE);
$result=mssql_execute($hStmt,true);
if (!$result) {
echo "ERROR HAS OCCURRED";
} else {
echo "NO ERROR";
}
if ($ForenameID==0) {
// error must have occurred
echo "There was an error trying to get forename pk and forenameid is
".$ForenameID;
} else {
echo "everything is fine and forenameid is ".$ForenameID;
}
Expected result:
----------------
$ForenameID=Value Returned From Stored Procedure
Actual result:
--------------
$ForenameID=0
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=37209&edit=1