让WordPress使用mysqli

wp在php7的机器上可能会因为没有php-mysql扩展而无法使用,想了一下,这问题应该不少人提出,应该有解决方法,无意间在wp-includes/wp-db.php中看到了这么一段话:

 

/**
 * Connects to the database server and selects a database
 *
 * PHP5 style constructor for compatibility with PHP5. Does
 * the actual setting up of the class properties and connection
 * to the database.
 *
 * @link https://core.trac.wordpress.org/ticket/3354
 * @since 2.0.8
 *
 * @global string $wp_version
 *
 * @param string $dbuser     MySQL database user
 * @param string $dbpassword MySQL database password
 * @param string $dbname     MySQL database name
 * @param string $dbhost     MySQL database host
 */
public function __construct( $dbuser, $dbpassword, $dbname, $dbhost ) {
    register_shutdown_function( array( $this, '__destruct' ) );

    if ( WP_DEBUG && WP_DEBUG_DISPLAY )
        $this->show_errors();

    // Use ext/mysqli if it exists unless WP_USE_EXT_MYSQL is defined as true
    if ( function_exists( 'mysqli_connect' ) ) {
        $this->use_mysqli = true;

        if ( defined( 'WP_USE_EXT_MYSQL' ) ) {
            $this->use_mysqli = ! WP_USE_EXT_MYSQL;
        }
    }

 

于是明白了,在wp-config.php中定义一下就可以强制使用php-mysqli了:

 

define('WP_USE_EXT_MYSQL', False);

 

看了下鬼佬的解释(非官方),当机器安装了mysqli并且php版本>=5.5,或者这个常量未声明,则会自动使用mysqli。但我这确实遇到一个诡异的站点是自动选择mysql库,所以定义一下安心些。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: