Recommend this page to a friend! |
ezSQL | > | All threads | > | ez_demo giving error | > | (Un) Subscribe thread alerts |
|
Nick L - 2009-10-10 16:56:39
I have used ez_sql in the past and I wish to thank you for a great class.
However I have a problem since I uninstalled and re-installed XAMPP on my PC. Before the re-installation, ez_demo.php ran fine. After installation I get the error I attach below. And yes, I have set the host, database, username and password correctly, and yes the database server is running! I can run my own PHP scripts that connect and use the mysql database fine, but ez_demo.php refuses to run and gives the following error every time. Any ideas gratefully received: dbh = @mysql_connect($dbhost,$dbuser,$dbpassword); if ( ! $this->dbh ) { $this->print_error(" 1. Error establishing a database connection!Are you sure you have the correct user/password? 2. Are you sure that you have typed the correct hostname? 3. Are you sure that the database server is running? "); } $this->select($dbname); } // ================================================================== // Select a DB (if another one needs to be selected) function select($db) { if ( !@mysql_select_db($db,$this->dbh)) { $this->print_error(" 1. Error selecting database $db!Are you sure it exists? 2. Are you sure there is a valid database connection? "); } } // ================================================================== // Print SQL/DB error. function print_error($str = "") { if ( !$str ) $str = mysql_error(); // If there is an error then take note of it print " "; print "SQL/DB Error -- "; print "[$str]"; print " "; } // ================================================================== // Basic Query - see docs for more detail function query($query, $output = OBJECT) { // Log how the function was called $this->func_call = "\$db->query(\"$query\", $output)"; // Kill this $this->last_result = null; $this->col_info = null; // Keep track of the last query for debug.. $this->last_query = $query; // Perform the query via std mysql_query function.. $this->result = mysql_query($query,$this->dbh); if ( mysql_error() ) { // If there is an error then take note of it.. $this->print_error(); } else { // In other words if this was a select statement.. if ( $this->result ) { // ======================================================= // Take note of column info $i=0; while ($i < @mysql_num_fields($this->result)) { $this->col_info[$i] = @mysql_fetch_field($this->result); $i++; } // ======================================================= // Store Query Results $i=0; while ( $row = @mysql_fetch_object($this->result) ) { // Store relults as an objects within main array $this->last_result[$i] = $row; $i++; } @mysql_free_result($this->result); // If there were results then return true for $db->query if ( $i ) { return true; } else { return false; } } } } // ================================================================== // Get one variable from the DB - see docs for more detail function get_var($query=null,$x=0,$y=0) { // Log how the function was called $this->func_call = "\$db->get_var(\"$query\",$x,$y)"; // If there is a query then perform it if not then use cached results.. if ( $query ) { $this->query($query); } // Extract var out of cached results based x,y vals if ( $this->last_result[$y] ) { $values = array_values(get_object_vars($this->last_result[$y])); } // If there is a value return it else return null return $values[$x]?$values[$x]:null; } // ================================================================== // Get one row from the DB - see docs for more detail function get_row($query=null,$y=0,$output=OBJECT) { // Log how the function was called $this->func_call = "\$db->get_row(\"$query\",$y,$output)"; // If there is a query then perform it if not then use cached results.. if ( $query ) { $this->query($query); } // If the output is an object then return object using the row offset.. if ( $output == OBJECT ) { return $this->last_result[$y]?$this->last_result[$y]:null; } // If the output is an associative array then return row as such.. elseif ( $output == ARRAY_A ) { return $this->last_result[$y]?get_object_vars($this->last_result[$y]):null; } // If the output is an numerical array then return row as such.. elseif ( $output == ARRAY_N ) { return $this->last_result[$y]?array_values(get_object_vars($this->last_result[$y])):null; } // If invalid output type was specified.. else { $this->print_error(" \$db->get_row(string query,int offset,output type) -- Output type must be one of: OBJECT, ARRAY_A, ARRAY_N "); } } // ================================================================== // Function to get 1 column from the cached result set based in X index // se docs for usage and info function get_col($query=null,$x=0) { // If there is a query then perform it if not then use cached results.. if ( $query ) { $this->query($query); } // Extract the column values for ( $i=0; $i < count($this->last_result); $i++ ) { $new_array[$i] = $this->get_var(null,$x,$i); } return $new_array; } // ================================================================== // Return the the query as a result set - see docs for more details function get_results($query=null, $output = OBJECT) { // Log how the function was called $this->func_call = "\$db->get_results(\"$query\", $output)"; // If there is a query then perform it if not then use cached results.. if ( $query ) { $this->query($query); } // Send back array of objects. Each row is an object if ( $output == OBJECT ) { return $this->last_result; } elseif ( $output == ARRAY_A || $output == ARRAY_N ) { if ( $this->last_result ) { $i=0; foreach( $this->last_result as $row ) { $new_array[$i] = get_object_vars($row); if ( $output == ARRAY_N ) { $new_array[$i] = array_values($new_array[$i]); } $i++; } return $new_array; } else { return null; } } } // ================================================================== // Function to get column meta data info pertaining to the last query // see docs for more info and usage function get_col_info($info_type="name",$col_offset=-1) { if ( $this->col_info ) { if ( $col_offset == -1 ) { $i=0; foreach($this->col_info as $col ) { $new_array[$i] = $col->{$info_type}; $i++; } return $new_array; } else { return $this->col_info[$col_offset]->{$info_type}; } } } // ================================================================== // Dumps the contents of any input variable to screen in a nicely // formatted and easy to understand way - any type: Object, Var or Array function vardump($mixed) { echo " "; echo " "; if ( ! $this->vardump_called ) { echo "ezSQL (v".EZSQL_VERSION.") Variable Dump..\n\n"; } print_r($mixed); echo "\n\nLast Query: ".($this->last_query?$this->last_query:"NULL")."\n"; echo "Last Function Call: " . ($this->func_call?$this->func_call:"None")."\n"; echo "Last Rows Returned: ".count($this->last_result)."\n"; echo " "; echo "\n"; $this->vardump_called = true; } // Alias for the above function function dumpvars($mixed) { $this->vardump($mixed); } // ================================================================== // Displays the last query string that was sent to the database & a // table listing results (if there were any). // (abstracted into a seperate file to save server overhead). function debug() { echo " "; // Only show ezSQL credits once.. if ( ! $this->debug_called ) { echo "ezSQL (v".EZSQL_VERSION.") Debug.. \n"; } echo "Query -- "; echo "[$this->last_query] "; echo "Query Result.."; echo " "; if ( $this->col_info ) { // ===================================================== // Results top rows echo ""; echo ""; for ( $i=0; $i < count($this->col_info); $i++ ) { echo ""; } echo ""; // ====================================================== // print main results if ( $this->last_result ) { $i=0; foreach ( $this->get_results(null,ARRAY_N) as $one_row ) { $i++; echo ""; foreach ( $one_row as $item ) { echo ""; } echo ""; } } // if last result else { echo ""; } echo " (row) {$this->col_info[$i]->type} {$this->col_info[$i]->max_length} {$this->col_info[$i]->name} $i $item No Results "; } // if col_info else { echo "No Results"; } echo " "; $this->debug_called = true; } } $db = new db(EZSQL_DB_USER, EZSQL_DB_PASSWORD, EZSQL_DB_NAME, EZSQL_DB_HOST); ?> ( ! ) Fatal error: Call to a member function get_results() on a non-object in C:\Program Files\xampp\htdocs\test_ezSQL\ez_demo.php on line 7 Call Stack # Time Memory Function Location 1 0.0038 316712 {main}( ) ..\ez_demo.php:0
Nick L - 2009-10-10 20:56:02 - In reply to message 1 from Nick L
I have tried many different things to solve this, and spent many hours Googling for an answer, but the only thing that solves it is reverting from XAMPP 1.7.2 (the latest) back to an older version, XAMPP 1.7.0.
I believe your package is incompatible with either the latest PHP, or the latest MySQL. |
info at phpclasses dot org
.