Database list - bulk drop, number of tables
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@1195 7c3ca157-0c34-0410-bff1-cbf682f78f5c
This commit is contained in:
parent
5e01a627f7
commit
08c4ad7809
|
@ -1,9 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
if ($_POST && !$error && !isset($_POST["add_x"])) { // add is an image and PHP changes add.x to add_x
|
if ($_POST && !$error && !isset($_POST["add_x"])) { // add is an image and PHP changes add.x to add_x
|
||||||
if ($_POST["drop"]) {
|
if (DB !== $_POST["name"]) {
|
||||||
unset($_SESSION["databases"][$_GET["server"]]);
|
|
||||||
query_redirect("DROP DATABASE " . idf_escape(DB), substr(preg_replace('~db=[^&]*&~', '', ME), 0, -1), lang('Database has been dropped.'));
|
|
||||||
} elseif (DB !== $_POST["name"]) {
|
|
||||||
// create or rename database
|
// create or rename database
|
||||||
unset($_SESSION["databases"][$_GET["server"]]); // clear cache
|
unset($_SESSION["databases"][$_GET["server"]]); // clear cache
|
||||||
$dbs = explode("\n", str_replace("\r", "", $_POST["name"]));
|
$dbs = explode("\n", str_replace("\r", "", $_POST["name"]));
|
||||||
|
@ -42,7 +39,7 @@ page_header(strlen(DB) ? lang('Alter database') : lang('Create database'), $erro
|
||||||
|
|
||||||
$collations = collations();
|
$collations = collations();
|
||||||
$name = DB;
|
$name = DB;
|
||||||
$collate = array();
|
$collate = null;
|
||||||
if ($_POST) {
|
if ($_POST) {
|
||||||
$name = $_POST["name"];
|
$name = $_POST["name"];
|
||||||
$collate = $_POST["collation"];
|
$collate = $_POST["collation"];
|
||||||
|
@ -55,14 +52,8 @@ if ($_POST) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} elseif (($result = $connection->query("SHOW CREATE DATABASE " . idf_escape(DB)))) {
|
} else {
|
||||||
$create = $connection->result($result, 1);
|
$collate = db_collation(DB, $collations);
|
||||||
if (preg_match('~ COLLATE ([^ ]+)~', $create, $match)) {
|
|
||||||
$collate = $match[1];
|
|
||||||
} elseif (preg_match('~ CHARACTER SET ([^ ]+)~', $create, $match)) {
|
|
||||||
// default collation
|
|
||||||
$collate = $collations[$match[1]][0];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
@ -76,9 +67,7 @@ if ($_POST) {
|
||||||
<input type="hidden" name="token" value="<?php echo $token; ?>">
|
<input type="hidden" name="token" value="<?php echo $token; ?>">
|
||||||
<input type="submit" value="<?php echo lang('Save'); ?>">
|
<input type="submit" value="<?php echo lang('Save'); ?>">
|
||||||
<?php
|
<?php
|
||||||
if (strlen(DB)) {
|
if (!$_POST["add_x"]) {
|
||||||
echo "<input type='submit' name='drop' value='" . lang('Drop') . "'$confirm>\n";
|
|
||||||
} elseif (!$_POST["add_x"]) {
|
|
||||||
echo "<input type='image' name='add' src='../adminer/static/plus.gif' alt='+' title='" . lang('Add next') . "'>\n";
|
echo "<input type='image' name='add' src='../adminer/static/plus.gif' alt='+' title='" . lang('Add next') . "'>\n";
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -39,7 +39,7 @@ if ($tables_views && !$error) {
|
||||||
|
|
||||||
page_header(lang('Database') . ": " . h(DB), $error, false);
|
page_header(lang('Database') . ": " . h(DB), $error, false);
|
||||||
echo '<p><a href="' . h(ME) . 'database=">' . lang('Alter database') . "</a>\n";
|
echo '<p><a href="' . h(ME) . 'database=">' . lang('Alter database') . "</a>\n";
|
||||||
echo '<p><a href="' . h(ME) . 'schema=">' . lang('Database schema') . "</a>\n";
|
echo '<a href="' . h(ME) . 'schema=">' . lang('Database schema') . "</a>\n";
|
||||||
|
|
||||||
echo "<h3>" . lang('Tables and views') . "</h3>\n";
|
echo "<h3>" . lang('Tables and views') . "</h3>\n";
|
||||||
$table_status = table_status();
|
$table_status = table_status();
|
||||||
|
|
|
@ -1,20 +1,50 @@
|
||||||
<?php
|
<?php
|
||||||
function connect_error() {
|
function connect_error() {
|
||||||
global $connection, $VERSION;
|
global $connection, $VERSION, $token, $error;
|
||||||
if (strlen(DB)) {
|
if (strlen(DB)) {
|
||||||
page_header(lang('Database') . ": " . h(DB), lang('Invalid database.'), false);
|
page_header(lang('Database') . ": " . h(DB), lang('Invalid database.'), false);
|
||||||
} else {
|
} else {
|
||||||
|
if ($_POST["db"] && !$error) {
|
||||||
|
unset($_SESSION["databases"][$_GET["server"]]);
|
||||||
|
foreach ($_POST["db"] as $db) {
|
||||||
|
if (!queries("DROP DATABASE " . idf_escape($db))) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
queries_redirect(substr(ME, 0, -1), lang('Database has been dropped.'), !$connection->error);
|
||||||
|
}
|
||||||
|
|
||||||
page_header(lang('Select database'), "", null);
|
page_header(lang('Select database'), "", null);
|
||||||
|
echo "<p>";
|
||||||
foreach (array(
|
foreach (array(
|
||||||
'database' => lang('Create new database'),
|
'database' => lang('Create new database'),
|
||||||
'privileges' => lang('Privileges'),
|
'privileges' => lang('Privileges'),
|
||||||
'processlist' => lang('Process list'),
|
'processlist' => lang('Process list'),
|
||||||
'variables' => lang('Variables'),
|
'variables' => lang('Variables'),
|
||||||
) as $key => $val) {
|
) as $key => $val) {
|
||||||
echo "<p><a href='" . h(ME) . "$key='>$val</a>\n";
|
echo "<a href='" . h(ME) . "$key='>$val</a>\n";
|
||||||
}
|
}
|
||||||
echo "<p>" . lang('MySQL version: %s through PHP extension %s', "<b" . ($connection->server_info < 4.1 ? " class='binary'" : "") . ">$connection->server_info</b>", "<b>$connection->extension</b>") . "\n";
|
echo "<p>" . lang('MySQL version: %s through PHP extension %s', "<b" . ($connection->server_info < 4.1 ? " class='binary'" : "") . ">$connection->server_info</b>", "<b>$connection->extension</b>") . "\n";
|
||||||
echo "<p>" . lang('Logged as: %s', "<b>" . h($connection->result($connection->query("SELECT USER()"))) . "</b>") . "\n";
|
echo "<p>" . lang('Logged as: %s', "<b>" . h($connection->result($connection->query("SELECT USER()"))) . "</b>") . "\n";
|
||||||
|
$databases = get_databases();
|
||||||
|
if ($databases) {
|
||||||
|
$collations = collations();
|
||||||
|
echo "<form action='' method='post'>\n";
|
||||||
|
echo "<table cellspacing='0' onclick='table_click(event);'>\n";
|
||||||
|
echo "<thead><tr><td><input type='hidden' name='token' value='$token'> <th>" . lang('Database') . "<td>" . lang('Collation') . "<td>" . lang('Tables') . "</thead>\n";
|
||||||
|
foreach ($databases as $db) {
|
||||||
|
$root = h(ME) . "db=" . urlencode($db);
|
||||||
|
echo "<tr><td>" . checkbox("db[]", $db, false);
|
||||||
|
echo "<th><a href='$root'>" . h($db) . "</a>";
|
||||||
|
echo "<td><a href='$root&database='>" . nbsp(db_collation($db, $collations)) . "</a>";
|
||||||
|
$result = $connection->query("SHOW TABLES FROM " . idf_escape($db));
|
||||||
|
echo "<td><a href='$root&schema='>$result->num_rows</a>";
|
||||||
|
echo "\n";
|
||||||
|
}
|
||||||
|
echo "</table>\n";
|
||||||
|
echo "<p><input type='submit' name='drop' value='" . lang('Drop') . "' onclick=\"return confirm('" . lang('Are you sure?') . " (' + form_checked(this, /db/) + ')');\">\n";
|
||||||
|
echo "</form>\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
page_footer("db");
|
page_footer("db");
|
||||||
}
|
}
|
||||||
|
|
|
@ -177,6 +177,30 @@ function get_databases($flush = true) {
|
||||||
return $return;
|
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() {
|
function engines() {
|
||||||
global $connection;
|
global $connection;
|
||||||
$return = array();
|
$return = array();
|
||||||
|
|
Loading…
Reference in a new issue