From: [EMAIL PROTECTED] Operating system: FreeBSD 4.5 PHP version: 4.2.0 PHP Bug Type: Scripting Engine problem Bug description: Bug in while statement
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 bug report at http://bugs.php.net/?id=17295&edit=1 -- Fixed in CVS: http://bugs.php.net/fix.php?id=17295&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=17295&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=17295&r=needtrace Try newer version: http://bugs.php.net/fix.php?id=17295&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=17295&r=support Expected behavior: http://bugs.php.net/fix.php?id=17295&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=17295&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=17295&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=17295&r=globals