ID:               17295
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Open
+Status:           Feedback
 Bug Type:         Scripting Engine problem
 Operating System: FreeBSD 4.5
 PHP Version:      4.2.0
 New Comment:

What if you remove that bogus 'die(..)' stuff from the
function? It now dies when there are no more rows.




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

[2002-05-17 16:51:06] [EMAIL PROTECTED]

I was following one of the samples in the MySQL section of the manual
to extract data from a table, and ran into the following:

If you have a class that handles the database access (I called it
DBManager:

class DBManager
{
  var $link;
  var $result;

  function connect( )
  {
    $this->link = mysql_pconnect( 'hostname', 'username', 'password'
);
    mysql_select_db( 'dbname', $this->link );
  }

  function query( $q )
  {
    $this->result = mysql_query( $q, $this->link );
    return( $this->result );
  }

  function next_row( )
  {
    $row = mysql_fetch_array( $this->result ) or
      die( "error: " . mysql_error( ) );
    return( $row );
  }
};

The sample in the documentation works fine:

$link = mysql_connect( 'hostname', 'username', 'password' );
mysql_select_db( 'dbname', $link );
$q = "SELECT * FROM user";
$result = mysql_query( $q );
while( $row = mysql_fetch_array( $result ) )
{
  echo $row['username'];
}

When replaced with the object above:

$db = new DBManager( )
$db->connect( );
$q = "SELECT * FROM user";
$result = $db->query( $q );
while( $row = $db->next_row( ) )
{
  echo $row['username'];
}

...Fetching the next row will fail with no error message from MySQL
(the return value from the call to "mysql_error" is empty.)

I think this is a bug in the scripting engine itself.  Using a function
call in the while condition works fine, but using a class-function call
causes an error.  If the "$row = $db->next_row( )" statement appears
anywhere else, it will work fine.

--
Paul A. Howes
[EMAIL PROTECTED]


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


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

Reply via email to