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
|
* @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() {
|
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 ) {
|
if ( $this->use_mysqli ) {
|
||||||
$server_info = mysqli_get_server_info( $this->dbh );
|
$server_info = mysqli_get_server_info( $this->dbh );
|
||||||
} else {
|
} else {
|
||||||
$server_info = mysql_get_server_info( $this->dbh );
|
$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();
|
self::$_wpdb = new WpdbExposedMethodsForTesting();
|
||||||
|
|
||||||
if ( self::$_wpdb->use_mysqli ) {
|
self::$server_info = self::$_wpdb->db_server_info();
|
||||||
self::$server_info = mysqli_get_server_info( self::$_wpdb->dbh );
|
|
||||||
} else {
|
|
||||||
self::$server_info = mysql_get_server_info( self::$_wpdb->dbh );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue