diff --git a/wp-includes/load.php b/wp-includes/load.php index e589f5fa5a..48cd487873 100644 --- a/wp-includes/load.php +++ b/wp-includes/load.php @@ -107,7 +107,7 @@ function wp_check_php_mysql_versions() { die( sprintf( __( 'Your server is running PHP version %1$s but WordPress %2$s requires at least %3$s.' ), $php_version, $wp_version, $required_php_version ) ); } - if ( ! extension_loaded( 'mysql' ) && ! file_exists( WP_CONTENT_DIR . '/db.php' ) ) { + if ( ! extension_loaded( 'mysql' ) && ! extension_loaded( 'mysqli' ) && ! file_exists( WP_CONTENT_DIR . '/db.php' ) ) { wp_load_translations_early(); die( __( 'Your PHP installation appears to be missing the MySQL extension which is required by WordPress.' ) ); } diff --git a/wp-includes/wp-db.php b/wp-includes/wp-db.php index dabce8cdfe..667ee3b25a 100644 --- a/wp-includes/wp-db.php +++ b/wp-includes/wp-db.php @@ -568,7 +568,18 @@ class wpdb { if ( WP_DEBUG && WP_DEBUG_DISPLAY ) $this->show_errors(); - $this->use_mysqli = ( version_compare( phpversion(), '5.5', '>=' ) && function_exists( 'mysqli_connect' ) ); + /* Use ext/mysqli if it exists and: + * - We are a development version of WordPress, or + * - We are running PHP 5.5 or greater, or + * - ext/mysql is not loaded. + */ + if ( function_exists( 'mysqli_connect' ) ) { + if ( version_compare( phpversion(), '5.5', '>=' ) || ! function_exists( 'mysql_connect' ) ) { + $this->use_mysqli = true; + } elseif ( false !== strpos( $GLOBALS['wp_version'], '-' ) ) { + $this->use_mysqli = true; + } + } $this->init_charset();