Database: Introduce wpdb::db_server_info()
to retrieve full MySQL server information string as supplied by mysqli_get_server_info()
.
This complements `wpdb::db_version()`, which only returns a numeric version string and strips any additional information, e.g. vendor name. Props clarinetlord, birgire, webaware, pento. Fixes #40037. See #27703. git-svn-id: https://develop.svn.wordpress.org/trunk@47451 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
60edf36394
commit
ed9d5c383f
@ -3610,14 +3610,26 @@ class wpdb {
|
||||
*
|
||||
* @since 2.7.0
|
||||
*
|
||||
* @return null|string Null on failure, version number on success.
|
||||
* @return string|null Version number on success, null on failure.
|
||||
*/
|
||||
public function db_version() {
|
||||
return preg_replace( '/[^0-9.].*/', '', $this->db_server_info() );
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves full MySQL server information.
|
||||
*
|
||||
* @since 5.5.0
|
||||
*
|
||||
* @return string|false Server info on success, false on failure.
|
||||
*/
|
||||
public function db_server_info() {
|
||||
if ( $this->use_mysqli ) {
|
||||
$server_info = mysqli_get_server_info( $this->dbh );
|
||||
} else {
|
||||
$server_info = mysql_get_server_info( $this->dbh );
|
||||
}
|
||||
return preg_replace( '/[^0-9.].*/', '', $server_info );
|
||||
|
||||
return $server_info;
|
||||
}
|
||||
}
|
||||
|
@ -29,11 +29,7 @@ class Tests_DB_Charset extends WP_UnitTestCase {
|
||||
|
||||
self::$_wpdb = new WpdbExposedMethodsForTesting();
|
||||
|
||||
if ( self::$_wpdb->use_mysqli ) {
|
||||
self::$server_info = mysqli_get_server_info( self::$_wpdb->dbh );
|
||||
} else {
|
||||
self::$server_info = mysql_get_server_info( self::$_wpdb->dbh );
|
||||
}
|
||||
self::$server_info = self::$_wpdb->db_server_info();
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user