diff --git a/wp-includes/functions.php b/wp-includes/functions.php index 77392b0e7b..5076dcb945 100644 --- a/wp-includes/functions.php +++ b/wp-includes/functions.php @@ -957,9 +957,9 @@ function is_blog_installed() { if ( wp_cache_get('is_blog_installed') ) return true; - $show = $wpdb->hide_errors(); + $suppress = $wpdb->suppress_errors(); $installed = $wpdb->get_var( "SELECT option_value FROM $wpdb->options WHERE option_name = 'siteurl'" ); - $wpdb->show_errors($show); + $wpdb->suppress_errors($suppress); $installed = !empty( $installed ) ? true : false; wp_cache_set('is_blog_installed', $installed); diff --git a/wp-includes/wp-db.php b/wp-includes/wp-db.php index b7f396a6d8..62408bc756 100644 --- a/wp-includes/wp-db.php +++ b/wp-includes/wp-db.php @@ -17,6 +17,7 @@ if (!defined('SAVEQUERIES')) class wpdb { var $show_errors = false; + var $suppress_errors = false; var $num_queries = 0; var $last_query; var $col_info; @@ -177,13 +178,18 @@ class wpdb { function print_error($str = '') { global $EZSQL_ERROR; + if (!$str) $str = mysql_error($this->dbh); $EZSQL_ERROR[] = array ('query' => $this->last_query, 'error_str' => $str); + if ( $this->suppress_errors ) + return false; + $error_str = "WordPress database error $str for query $this->last_query"; if ( $caller = $this->get_caller() ) $error_str .= " made by $caller"; + @error_log($error_str, 0); // Is error output turned on or not.. @@ -215,6 +221,12 @@ class wpdb { return $show; } + function suppress_errors( $suppress = true ) { + $errors = $this->suppress_errors; + $this->suppress_errors = $suppress; + return $errors; + } + // ================================================================== // Kill cached query results