From 19d7d1dd09053a8bea05e4ec209a0f8c0330036e Mon Sep 17 00:00:00 2001 From: Andrew Nacin Date: Tue, 25 Feb 2014 15:52:48 +0000 Subject: [PATCH] Use mysqli for WordPress development versions, regardless of PHP version, to increase testing footprint. Allow the lack of ext/mysql to pass wp_check_php_mysql_versions(). see #21663. git-svn-id: https://develop.svn.wordpress.org/trunk@27257 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/load.php | 2 +- src/wp-includes/wp-db.php | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/wp-includes/load.php b/src/wp-includes/load.php index e589f5fa5a..48cd487873 100644 --- a/src/wp-includes/load.php +++ b/src/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/src/wp-includes/wp-db.php b/src/wp-includes/wp-db.php index dabce8cdfe..667ee3b25a 100644 --- a/src/wp-includes/wp-db.php +++ b/src/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();