|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2002-05-17 18:04 UTC] sniper@php.net
[2002-07-13 18:37 UTC] derick@php.net
[2002-07-13 19:37 UTC] pahowes at fair-ware dot com
[2002-07-14 04:51 UTC] derick@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 29 13:00:01 2025 UTC |
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 pahowes@fair-ware.com