diff --git a/adminer/database.inc.php b/adminer/database.inc.php index 6479ea56..62bec8e6 100644 --- a/adminer/database.inc.php +++ b/adminer/database.inc.php @@ -1,9 +1,6 @@ query("SHOW CREATE DATABASE " . idf_escape(DB)))) { - $create = $connection->result($result, 1); - if (preg_match('~ COLLATE ([^ ]+)~', $create, $match)) { - $collate = $match[1]; - } elseif (preg_match('~ CHARACTER SET ([^ ]+)~', $create, $match)) { - // default collation - $collate = $collations[$match[1]][0]; - } +} else { + $collate = db_collation(DB, $collations); } ?> @@ -76,9 +67,7 @@ if ($_POST) { \n"; -} elseif (!$_POST["add_x"]) { +if (!$_POST["add_x"]) { echo "\n"; } ?> diff --git a/adminer/db.inc.php b/adminer/db.inc.php index d2fe5f59..c5f51dd8 100644 --- a/adminer/db.inc.php +++ b/adminer/db.inc.php @@ -39,7 +39,7 @@ if ($tables_views && !$error) { page_header(lang('Database') . ": " . h(DB), $error, false); echo '
' . lang('Alter database') . "\n"; -echo '
' . lang('Database schema') . "\n"; +echo '' . lang('Database schema') . "\n"; echo "
"; foreach (array( 'database' => lang('Create new database'), 'privileges' => lang('Privileges'), 'processlist' => lang('Process list'), 'variables' => lang('Variables'), ) as $key => $val) { - echo "
$val\n"; + echo "$val\n"; } echo "
" . lang('MySQL version: %s through PHP extension %s', "server_info < 4.1 ? " class='binary'" : "") . ">$connection->server_info", "$connection->extension") . "\n"; echo "
" . lang('Logged as: %s', "" . h($connection->result($connection->query("SELECT USER()"))) . "") . "\n"; + $databases = get_databases(); + if ($databases) { + $collations = collations(); + echo "
\n"; + } } page_footer("db"); } diff --git a/adminer/include/mysql.inc.php b/adminer/include/mysql.inc.php index 8ddafded..29f3ae3a 100644 --- a/adminer/include/mysql.inc.php +++ b/adminer/include/mysql.inc.php @@ -177,6 +177,30 @@ function get_databases($flush = true) { return $return; } +/** Get database collation +* @param string +* @param array result of collations() +* @return +*/ +function db_collation($db, $collations) { + global $connection; + $return = null; + $result = $connection->query("SHOW CREATE DATABASE " . idf_escape($db)); + if ($result) { + $create = $connection->result($result, 1); + if (preg_match('~ COLLATE ([^ ]+)~', $create, $match)) { + $return = $match[1]; + } elseif (preg_match('~ CHARACTER SET ([^ ]+)~', $create, $match)) { + // default collation + $return = $collations[$match[1]][0]; + } + } + return $return; +} + +/**Get supported engines +* @return array +*/ function engines() { global $connection; $return = array(); diff --git a/todo.txt b/todo.txt index 8122a453..5f4f27b1 100644 --- a/todo.txt +++ b/todo.txt @@ -1,4 +1,3 @@ -Bulk database drop Add whisperer to fields with foreign key Highlight found fields MySQL 5 BIT data type