diff --git a/src/wp-includes/wp-db.php b/src/wp-includes/wp-db.php index 9759438a0c..a5903b4187 100644 --- a/src/wp-includes/wp-db.php +++ b/src/wp-includes/wp-db.php @@ -1479,7 +1479,7 @@ class wpdb { $port = null; $socket = null; $is_ipv6 = false; - + if ( $host_data = $this->parse_db_host( $this->dbhost ) ) { list( $host, $port, $socket, $is_ipv6 ) = $host_data; } @@ -1621,9 +1621,10 @@ class wpdb { return false; } + $host = ''; foreach ( array( 'host', 'port', 'socket' ) as $component ) { - if ( array_key_exists( $component, $matches ) ) { - $$component = $matches[$component]; + if ( ! empty( $matches[ $component ] ) ) { + $$component = $matches[ $component ]; } } diff --git a/tests/phpunit/tests/db.php b/tests/phpunit/tests/db.php index 208c70ed5b..23fc87f8c4 100644 --- a/tests/phpunit/tests/db.php +++ b/tests/phpunit/tests/db.php @@ -1208,10 +1208,10 @@ class Tests_DB extends WP_UnitTestCase { list( $parsed_host, $parsed_port, $parsed_socket, $parsed_is_ipv6 ) = $data; - $this->assertEquals( $host, $parsed_host ); - $this->assertEquals( $port, $parsed_port ); - $this->assertEquals( $socket, $parsed_socket ); - $this->assertEquals( $is_ipv6, $parsed_is_ipv6 ); + $this->assertSame( $host, $parsed_host ); + $this->assertSame( $port, $parsed_port ); + $this->assertSame( $socket, $parsed_socket ); + $this->assertSame( $is_ipv6, $parsed_is_ipv6 ); } } @@ -1220,7 +1220,7 @@ class Tests_DB extends WP_UnitTestCase { array( '', // DB_HOST false, // Expect parse_db_host to bail for this hostname - null, // Parsed host + '', // Parsed host null, // Parsed port null, // Parsed socket false, // is_ipv6 @@ -1228,7 +1228,7 @@ class Tests_DB extends WP_UnitTestCase { array( ':3306', false, - null, + '', '3306', null, false, @@ -1236,7 +1236,7 @@ class Tests_DB extends WP_UnitTestCase { array( ':/tmp/mysql.sock', false, - null, + '', null, '/tmp/mysql.sock', false,