diff --git a/wp-includes/ms-settings.php b/wp-includes/ms-settings.php index f5e5fb510..9883c4e82 100644 --- a/wp-includes/ms-settings.php +++ b/wp-includes/ms-settings.php @@ -115,7 +115,7 @@ if ( ! $blog_id ) { } } -$wpdb->set_prefix( $table_prefix ); // set up blog tables +$wpdb->set_prefix( $table_prefix, false ); // set DB table prefix $wpdb->set_blog_id( $current_blog->blog_id, $current_blog->site_id ); $table_prefix = $wpdb->get_blog_prefix(); diff --git a/wp-includes/wp-db.php b/wp-includes/wp-db.php index 008590079..168f59ed3 100644 --- a/wp-includes/wp-db.php +++ b/wp-includes/wp-db.php @@ -548,7 +548,7 @@ class wpdb { * @param string $prefix Alphanumeric name for the new prefix. * @return string|WP_Error Old prefix or WP_Error on error */ - function set_prefix( $prefix ) { + function set_prefix( $prefix, $set_table_names = true ) { if ( preg_match( '|[^a-z0-9_]|i', $prefix ) ) return new WP_Error('invalid_db_prefix', /*WP_I18N_DB_BAD_PREFIX*/'Invalid database prefix'/*/WP_I18N_DB_BAD_PREFIX*/); @@ -560,20 +560,21 @@ class wpdb { $this->base_prefix = $prefix; - foreach ( $this->tables( 'global' ) as $table => $prefixed_table ) - $this->$table = $prefixed_table; + if ( $set_table_names ) { + foreach ( $this->tables( 'global' ) as $table => $prefixed_table ) + $this->$table = $prefixed_table; - if ( defined( 'VHOST' ) && empty( $this->blogid ) ) - return $old_prefix; + if ( defined( 'VHOST' ) && empty( $this->blogid ) ) + return $old_prefix; - $this->prefix = $this->get_blog_prefix( $this->blogid ); + $this->prefix = $this->get_blog_prefix( $this->blogid ); - foreach ( $this->tables( 'blog' ) as $table => $prefixed_table ) - $this->$table = $prefixed_table; - - foreach ( $this->tables( 'old' ) as $table => $prefixed_table ) - $this->$table = $prefixed_table; + foreach ( $this->tables( 'blog' ) as $table => $prefixed_table ) + $this->$table = $prefixed_table; + foreach ( $this->tables( 'old' ) as $table => $prefixed_table ) + $this->$table = $prefixed_table; + } return $old_prefix; }