echo ($_POST["format"] != "csv" ? "USE " . idf_escape($db) . ";\n" : "");
if (!strlen($_GET["db"])) {
$views = array();
- $result = $mysql->query("SHOW TABLE STATUS");
- while ($row = $result->fetch_assoc()) {
- if (isset($row["Engine"])) {
- if ($_POST["format"] == "csv") {
- ob_start();
- }
- dump_table($row["Name"], $_POST["tables"][0]);
- dump_data($row["Name"], $_POST["data"][0]);
- if ($_POST["format"] == "csv") {
- echo tar_file("$db/$row[Name].csv", ob_get_clean());
+ if ($_POST["tables"][0] || $_POST["data"][0]) {
+ $result = $mysql->query("SHOW TABLE STATUS");
+ while ($row = $result->fetch_assoc()) {
+ if (isset($row["Engine"])) {
+ if ($_POST["format"] == "csv") {
+ ob_start();
+ }
+ dump_table($row["Name"], $_POST["tables"][0]);
+ dump_data($row["Name"], $_POST["data"][0]);
+ if ($_POST["format"] == "csv") {
+ echo tar_file("$db/$row[Name].csv", ob_get_clean());
+ }
+ } else {
+ $views[] = $row["Name"];
}
- } else {
- $views[] = $row["Name"];
}
+ $result->free();
}
- $result->free();
if ($_POST["format"] != "csv") {
foreach ($views as $view) {
dump_table($view, $_POST["tables"][0]);
}
if ($_POST) {
- $filename = (strlen($_GET["db"]) ? preg_replace('~[^a-z0-9_]~i', '-', (strlen($_GET["dump"]) ? $_GET["dump"] : $_GET["db"])) : "dump");
- $ext = ($_POST["format"] == "sql" ? "sql" : (!strlen($_GET["db"]) || count(array_filter($_POST["tables"]) + array_filter($_POST["data"])) > 1 ? "tar" : "csv"));
- header("Content-Type: " . ($ext == "tar" ? "application/x-tar" : ($ext == "sql" || $_POST["output"] != "file" ? "text/plain" : "text/csv")) . "; charset=utf-8");
- header("Content-Disposition: " . ($_POST["output"] == "file" ? "attachment" : "inline") . "; filename=$filename.$ext");
+ $ext = dump_headers((strlen($_GET["dump"]) ? $_GET["dump"] : $_GET["db"]), (!strlen($_GET["db"]) || count(array_filter($_POST["tables"]) + array_filter($_POST["data"])) > 1));
if ($_POST["format"] != "csv") {
$max_packet = 16777216;
echo "SET NAMES utf8;\n";
}
if (strlen($_GET["db"])) {
foreach ($_POST["tables"] as $key => $style) {
- $table = bracket_escape($key, "back");
- if ($ext == "tar") {
- ob_start();
- }
- dump_table($table, $style);
- dump_data($table, $_POST["data"][$key]);
- if ($ext == "tar") {
- echo tar_file("$table.csv", ob_get_clean());
+ if ($style || $_POST["data"][$key]) {
+ $table = bracket_escape($key, "back");
+ if ($ext == "tar") {
+ ob_start();
+ }
+ dump_table($table, $style);
+ dump_data($table, $_POST["data"][$key]);
+ if ($ext == "tar") {
+ echo tar_file("$table.csv", ob_get_clean());
+ }
}
}
dump_routines($_GET["db"]);
</script>
<form action="" method="post">
-<p><?php echo lang('Output') . ": <select name='output'><option value='text'>" . lang('open') . "</option><option value='file'>" . lang('save') . "</option></select> " . $dump_options; ?></p>
+<p><?php echo $dump_options; ?></p>
<?php
echo "<table border='1' cellspacing='0' cellpadding='2'>\n<thead><tr><th>" . lang('Database') . "</th>";
}
}
-$dump_options = lang('Format') . ": <select name='format'><option value='sql'>" . lang('SQL') . "</option><option value='csv'>" . lang('CSV') . "</option></select>";
+function dump_headers($identifier, $multi_table = false) {
+ $filename = (strlen($identifier) ? preg_replace('~[^a-z0-9_]~i', '-', $identifier) : "dump");
+ $ext = ($_POST["format"] == "sql" ? "sql" : ($multi_table ? "tar" : "csv"));
+ header("Content-Type: " . ($ext == "tar" ? "application/x-tar" : ($ext == "sql" || $_POST["output"] != "file" ? "text/plain" : "text/csv")) . "; charset=utf-8");
+ header("Content-Disposition: " . ($_POST["output"] == "file" ? "attachment" : "inline") . "; filename=$filename.$ext");
+ return $ext;
+}
+
+$dump_options = lang('Output') . ": <select name='output'><option value='text'>" . lang('open') . "</option><option value='file'>" . lang('save') . "</option></select> " . lang('Format') . ": <select name='format'><option value='sql'>" . lang('SQL') . "</option><option value='csv'>" . lang('CSV') . "</option></select>";
$max_packet = 0;