private function restoreWpdbConnection()
{
if (!class_exists('wpdb')) {
return;
}
/** @var \wpdb $wpdb */
global $wpdb;
if (empty($wpdb)) {
$wpdb = new \wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
} else {
$wpdb->db_connect();
$wpdb->check_connection();
}
/**
* To avoid `mysqli_free_result` errors during the `wpdb::flush()` method set the result to `null`.
* See `wp-db.php` file line 1425.
*/
$reflection = new \ReflectionClass($wpdb);
$resultProperty = $reflection->getProperty('result');
$resultProperty->setAccessible(true);
$resultProperty->setValue($wpdb, null);
$resultProperty->setAccessible(false);
}