diff --git a/adminer/drivers/mysql.inc.php b/adminer/drivers/mysql.inc.php index a563eca6..91c07414 100644 --- a/adminer/drivers/mysql.inc.php +++ b/adminer/drivers/mysql.inc.php @@ -368,7 +368,7 @@ if (!defined('Adminer\DRIVER')) { function slowQuery($query, $timeout) { if (min_version('5.7.8', '10.1.2')) { - if (preg_match('~MariaDB~', $this->conn->server_info)) { + if ($this->conn->maria) { return "SET STATEMENT max_statement_time=$timeout FOR $query"; } elseif (preg_match('~^(SELECT\b)(.+)~is', $query, $match)) { return "$match[1] /*+ MAX_EXECUTION_TIME(" . ($timeout * 1000) . ") */ $match[2]"; @@ -393,7 +393,7 @@ if (!defined('Adminer\DRIVER')) { } function tableHelp($name, $is_view = false) { - $maria = preg_match('~MariaDB~', $this->conn->server_info); + $maria = $this->conn->maria; if (information_schema(DB)) { return strtolower("information-schema-" . ($maria ? "$name-table/" : str_replace("_", "-", $name) . "-table.html")); } @@ -439,6 +439,7 @@ if (!defined('Adminer\DRIVER')) { if ($connection->connect($credentials[0], $credentials[1], $credentials[2])) { $connection->set_charset(charset($connection)); // available in MySQLi since PHP 5.0.5 $connection->query("SET sql_quote_show_create = 1, autocommit = 1"); + $connection->maria = preg_match('~MariaDB~', $connection->server_info); return $connection; } $return = $connection->error; @@ -598,7 +599,7 @@ if (!defined('Adminer\DRIVER')) { */ function fields($table) { global $connection; - $maria = preg_match('~MariaDB~', $connection->server_info); + $maria = $connection->maria; $return = array(); foreach (get_rows("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = " . q($table) . " ORDER BY ORDINAL_POSITION") as $row) { $field = $row["COLUMN_NAME"]; @@ -823,7 +824,7 @@ if (!defined('Adminer\DRIVER')) { $default = $field[1][3]; if (preg_match('~ GENERATED~', $default)) { // swap default and null - $field[1][3] = (preg_match('~MariaDB~', $connection->server_info) ? "" : $field[1][2]); // MariaDB doesn't support NULL on virtual columns + $field[1][3] = ($connection->maria ? "" : $field[1][2]); // MariaDB doesn't support NULL on virtual columns $field[1][2] = $default; } $alter[] = ($table != "" ? ($field[0] != "" ? "CHANGE " . idf_escape($field[0]) : "ADD") : " ") . " " . implode($field[1]) . ($table != "" ? $field[2] : ""); diff --git a/adminer/include/adminer.inc.php b/adminer/include/adminer.inc.php index 928b6938..b320d4ec 100644 --- a/adminer/include/adminer.inc.php +++ b/adminer/include/adminer.inc.php @@ -1030,9 +1030,8 @@ class Adminer { echo "jushLinks.$val = jushLinks." . JUSH . ";\n"; } } - $server_info = $connection->server_info; ?> -bodyLoad(''); +bodyLoad('server_info) : ""); ?>'maria ? ", true" : ""); ?>); ?") { 'mssql' => "https://learn.microsoft.com/en-us/sql/", 'oracle' => "https://www.oracle.com/pls/topic/lookup?ctx=db" . preg_replace('~^.* (\d+)\.(\d+)\.\d+\.\d+\.\d+.*~s', '\1\2', $server_info) . "&id=", ); - if (preg_match('~MariaDB~', $server_info)) { + if ($connection->maria) { $urls['sql'] = "https://mariadb.com/kb/en/"; $paths['sql'] = (isset($paths['mariadb']) ? $paths['mariadb'] : str_replace(".html", "/", $paths['sql'])); }