diff options
author | Christian Foellmann <foellmann@foe-services.de> | 2014-12-23 14:48:13 +0300 |
---|---|---|
committer | Christian Foellmann <foellmann@foe-services.de> | 2014-12-23 14:48:13 +0300 |
commit | 2bfb20e57418ebf396149782be9f98e868fe8608 (patch) | |
tree | a5ec4011410970603d3f462a535a5a359057fa77 /libraries/mysql_charsets.lib.php | |
parent | 20f1bf77c8281efc675a14e0f6bf52f657dabd9a (diff) |
UPDATE 4.3.34.3.3
Diffstat (limited to 'libraries/mysql_charsets.lib.php')
-rw-r--r-- | libraries/mysql_charsets.lib.php | 46 |
1 files changed, 28 insertions, 18 deletions
diff --git a/libraries/mysql_charsets.lib.php b/libraries/mysql_charsets.lib.php index 87610a6fc4..af48c264ee 100644 --- a/libraries/mysql_charsets.lib.php +++ b/libraries/mysql_charsets.lib.php @@ -12,20 +12,18 @@ if (! defined('PHPMYADMIN')) { /** * Generate charset dropdown box * - * @param int $type Type - * @param null|string $name Element name - * @param null|string $id Element id - * @param null|string $default Default value - * @param bool $label Label - * @param int $indent Indent - * @param bool $submitOnChange Submit on change - * @param bool $displayUnavailable Display unavailable + * @param int $type Type + * @param string $name Element name + * @param string $id Element id + * @param null|string $default Default value + * @param bool $label Label + * @param bool $submitOnChange Submit on change * * @return string */ function PMA_generateCharsetDropdownBox($type = PMA_CSDROPDOWN_COLLATION, - $name = null, $id = null, $default = null, $label = true, $indent = 0, - $submitOnChange = false, $displayUnavailable = false + $name = null, $id = null, $default = null, $label = true, + $submitOnChange = false ) { global $mysql_charsets, $mysql_charsets_descriptions, $mysql_charsets_available, $mysql_collations, $mysql_collations_available; @@ -116,14 +114,26 @@ function PMA_getDbCollation($db) return 'utf8_general_ci'; } - $sql = PMA_DRIZZLE - ? 'SELECT DEFAULT_COLLATION_NAME FROM data_dictionary.SCHEMAS' - . ' WHERE SCHEMA_NAME = \'' . PMA_Util::sqlAddSlashes($db) - . '\' LIMIT 1' - : 'SELECT DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA' - . ' WHERE SCHEMA_NAME = \'' . PMA_Util::sqlAddSlashes($db) - . '\' LIMIT 1'; - return $GLOBALS['dbi']->fetchValue($sql); + if (! $GLOBALS['cfg']['Server']['DisableIS']) { + // this is slow with thousands of databases + $sql = PMA_DRIZZLE + ? 'SELECT DEFAULT_COLLATION_NAME FROM data_dictionary.SCHEMAS' + . ' WHERE SCHEMA_NAME = \'' . PMA_Util::sqlAddSlashes($db) + . '\' LIMIT 1' + : 'SELECT DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA' + . ' WHERE SCHEMA_NAME = \'' . PMA_Util::sqlAddSlashes($db) + . '\' LIMIT 1'; + return $GLOBALS['dbi']->fetchValue($sql); + } else { + $GLOBALS['dbi']->selectDb($db); + $return = $GLOBALS['dbi']->fetchValue( + 'SHOW VARIABLES LIKE \'collation_database\'', 0, 1 + ); + if ($db !== $GLOBALS['db']) { + $GLOBALS['dbi']->selectDb($GLOBALS['db']); + } + return $return; + } } /** |