ID:               28068
 User updated by:  oooacooo at yahoo dot com
 Reported By:      oooacooo at yahoo dot com
-Status:           Bogus
+Status:           Open
 Bug Type:         MSSQL related
 Operating System: Windows 2K Server; Apache 2.0.45
 PHP Version:      4.3.4
 Assigned To:      fmk
 New Comment:

The content of the stored procedure is irrelevant because if you can
see from my description it worked with build 4.3.2 and after installing
4.3.4 it failed.  I then relaced php_mssql.dll with the one from the
4.3.2 build and it worked again.

If a rewrite of my application or the stored procedure to fix the issue
is your work around that is fine, but build 4.3.4 still implemented a
backward compatablity issue.


Previous Comments:
------------------------------------------------------------------------

[2004-04-20 23:38:45] [EMAIL PROTECTED]

The result from mssql_query() is not a valid resource. The function
might just return TRUE if the storred procedure was executed with
success. Not having access to the stored procedure makes it difficult
to tell why this is happening.

You should check the result with is_resource() before calling
mssql_num_rows() (and any other mssql_function for that matter) if you
want to avoid this error message, or make sure your storred procedure
returns a result set (even with 0 rows) each time.

------------------------------------------------------------------------

[2004-04-20 09:11:50] [EMAIL PROTECTED]

Assigning to the maintainer, as this is obviously wrong (and BC
breaking) behavior.

------------------------------------------------------------------------

[2004-04-19 22:01:58] oooacooo at yahoo dot com

Description:
------------
When using mssql_execute() with PHP version 4.3.2 mssql_num_rows() will
return 0, when no records are returned from a stored procedure.

When using version 4.3.4 and above mssql_num_rows() will return
"supplied argument is not a valid MS SQL-result
resource"

I tested this by running the code successfully with the php_mssql.dll
which ships with 4.3.2 and then swapped php_mssql.dll with the one that
ships with 4.3.4 and restarted Apache.

Reproduce code:
---------------
$validEpisode = mssql_query("spValidateEpisodeDate " . $AccountID .
",'" . $inputVisitDate . "'",$db);

        if(mssql_num_rows($validEpisode) > 0)
                {
                        $row = mssql_fetch_object($validEpisode);
                        if($row->Episode_ID == "")
                                $errorMsg = "There is no episode for this account that 
covers the
visit date entered.<br>" . $errorMsg;
                        else
                                $EpisodeID = $row->Episode_ID;
                }

Expected result:
----------------
If no records are found I would expect
"if(mssql_num_rows($validEpisode) > 0)" to return true.

Actual result:
--------------
"if(mssql_num_rows($validEpisode) > 0)" throws an error "supplied
argument is not a valid MS SQL-result
resource"


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=28068&edit=1

Reply via email to