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
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: adrian at smartcall dot ro
New email:
PHP Version: OS:

 

 [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

Pull Requests

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: Sun Dec 22 11:01:30 2024 UTC