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