php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #24720 mysql_result(): supplied argument is not a valid MySQL result resource
Submitted: 2003-07-19 14:48 UTC Modified: 2004-01-16 15:45 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:0 (0.0%)
From: adrian at smartcall dot ro Assigned:
Status: Not a bug Package: MSSQL related
PHP Version: 4.3.2 OS: linux slackware
Private report: No CVE-ID: None
 [2003-07-19 14:48 UTC] adrian at smartcall dot ro
Description:
------------
I updated my php to php-4.3.2 on apache_1.3.27, I have mysql-3.23.57 and I also use freetds-0.61.
My php ./configure line is 
'./configure' '--prefix=/usr/local/misc/php' '--with-apxs=/usr/local/misc/apache/bin/apxs' '--with-mysql=/usr/local/misc/mysql' '--with-sybase-ct=/usr/local/misc/freetds'  
All my scripts ( that before worked ) are giveing me the followig error :
Warning: mysql_result(): supplied argument is not a valid MySQL result resource 
mssql_fetch_row(): supplied argument is not a valid Sybase result resource 

This error apears when no line maches the query !

In the first place I thought that is the freetds driver ... but I saw that even on mysql i'm geting the same error.


Reproduce code:
---------------
 $msdb = mssql_connect("192.168.0.5", "web","webpass");
  mssql_select_db("DATABASE",$msdb);

  $result = mssql_query("SELECT DEALERS.PASS FROM DEALERS WHERE DEALERS.DEALER='" . $_POST["DealerName"] . "'", $msdb);

  $msrow = mssql_fetch_row($result);

  if ( $msrow[0] != $_POST["DealerPass"] )
   { mssql_close($msdb);
     include("../include/error_message.html");
     exit();
   }


Expected result:
----------------
Warning: mssql_fetch_row(): supplied argument is not a valid Sybase result resource in /home/www/default/dealer/check_dealer.php on line 7


Actual result:
--------------
In $msrow[0] I should have the password ( I have the password when $_POST["DealerName"] matches one of the DEALERS.DEALER from DEALERS ) but if $_POST["DealerName"] can't be found in the table I'm getting Warning: mysql_result(): supplied argument is not a valid MySQL result resource 
I "echo("Result = ".$result);" and when I have a match I'm getting "Result = Resource id #7" and when not a match I have "Result = 1". Is this correct ? Before using php 4.3.2 I didn't faced this problem !

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2003-07-20 10:47 UTC] sniper@php.net
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 give a complete example script, WITHOUT any 'include/require' calls.

 [2003-07-21 06:12 UTC] adrian at smartcall dot ro
I downloaded the latest snapshot ... compiled, instaled ... but with no success ... the result is still the same for mssql_query or mysql_query: When my query has no match I get 1 as result instead of a resurce id.

Now I am writting myscripts this way :

if ( $result != 1 )
    while ($msrow = mssql_fetch_row($result))
     { 
       ... etc ...
     }

But I don't think this is very elegant.

P.S. Before I installed the slackware on the server I had a debian ( woody ), on which I had the same problem. So, is not a operating system problem !
 [2003-07-24 09:27 UTC] iliaa@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

I unable to test mssql, however the test code does work correctly unless the query you execute is faulty. For example if you perform a select on a non-existant field the error that occurs when mysql_fetch_row() is called is identical to the one you describe. Which leads me to believe the error is the result of a bad query and not a behavioural change in PHP.
 [2004-01-16 14:12 UTC] savelazquez at megacable dot com dot mx
I have the same problem on FreeBSD, I think this is a bug, and is not related to the O.S.

I reproduced the same querys that PHP/FreeTDS fails to execute in SQSH/FreeTDS and they run fine. The problem presents when no records are found in the query using PHP/FreeTDS.
 [2004-01-16 15:45 UTC] adrian at smartcall dot ro
I have also the corect result when I run SQSH/FreeTDS. Still in php the problem persist, I didn't found a way to solve it !
 [2004-07-15 15:49 UTC] tomislav at escapestudio dot net
I had the same problem and after spending a whole week on finding the solution, I gave Up. Only one was mentioned above:
if ( $result != 1 )
    while ($msrow = mssql_fetch_row($result))
     { 
       ... etc ...
     }
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Apr 19 22:01:28 2024 UTC