Make WordPress Core

Ticket #21663: 21663.15.diff

File 21663.15.diff, 1.9 KB (added by pento, 10 years ago)
  • src/wp-includes/wp-db.php

     
    569569                        $this->show_errors();
    570570
    571571                /* Use ext/mysqli if it exists and:
     572                 *  - USE_EXT_MYSQL is defined as false, or
    572573                 *  - We are a development version of WordPress, or
    573574                 *  - We are running PHP 5.5 or greater, or
    574575                 *  - ext/mysql is not loaded.
    575576                 */
    576577                if ( function_exists( 'mysqli_connect' ) ) {
    577                         if ( version_compare( phpversion(), '5.5', '>=' ) || ! function_exists( 'mysql_connect' ) ) {
     578                        if ( defined( 'USE_EXT_MYSQL' ) ) {
     579                                $this->use_mysqli = ! USE_EXT_MYSQL;
     580                        } elseif ( version_compare( phpversion(), '5.5', '>=' ) || ! function_exists( 'mysql_connect' ) ) {
    578581                                $this->use_mysqli = true;
    579582                        } elseif ( false !== strpos( $GLOBALS['wp_version'], '-' ) ) {
    580583                                $this->use_mysqli = true;
     
    10111014         * @return string escaped
    10121015         */
    10131016        function _real_escape( $string ) {
    1014                 if ( $this->dbh ) {
    1015                         if ( $this->use_mysqli ) {
     1017                if ( $this->dbh || ( $this->use_mysqli && ! $this->dbh->connect_errno ) ) {
     1018                        if ( $this->use_mysqli && ! $this->dbh->connect_errno ) {
    10161019                                return mysqli_real_escape_string( $this->dbh, $string );
    10171020                        } else {
    10181021                                return mysql_real_escape_string( $string, $this->dbh );
     
    13351338                        }
    13361339                }
    13371340
    1338                 if ( ! $this->dbh && $allow_bail ) {
     1341                if ( ( ! $this->dbh || ( $this->use_mysqli && $this->dbh->connect_errno ) ) && $allow_bail ) {
    13391342                        wp_load_translations_early();
    13401343
    13411344                        // Load custom DB error template, if present.
     
    13561359" ), htmlspecialchars( $this->dbhost, ENT_QUOTES ) ), 'db_connect_fail' );
    13571360
    13581361                        return false;
    1359                 } else if ( $this->dbh ) {
     1362                } else if ( $this->dbh || ( $this->use_mysqli && ! $this->dbh->connect_errno ) ) {
    13601363                        $this->set_charset( $this->dbh );
    13611364                        $this->set_sql_mode();
    13621365                        $this->ready = true;