mirror of
https://github.com/vrana/adminer.git
synced 2025-08-12 09:34:10 +02:00
Use extended INSERT in select export
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@695 7c3ca157-0c34-0410-bff1-cbf682f78f5c
This commit is contained in:
@@ -12,7 +12,6 @@ function tar_file($filename, $contents) {
|
||||
if ($_POST) {
|
||||
$ext = dump_headers((strlen($_GET["dump"]) ? $_GET["dump"] : $_GET["db"]), (!strlen($_GET["db"]) || count((array) $_POST["tables"] + (array) $_POST["data"]) > 1));
|
||||
if ($_POST["format"] != "csv") {
|
||||
$max_packet = 1048576; // default, minimum is 1024
|
||||
echo "SET NAMES utf8;\n";
|
||||
echo "SET foreign_key_checks = 0;\n";
|
||||
echo "SET time_zone = '" . $dbh->escape_string($dbh->result($dbh->query("SELECT @@time_zone"))) . "';\n";
|
||||
|
@@ -129,7 +129,7 @@ function dump_data($table, $style, $select = "") {
|
||||
if ($_POST["format"] == "csv") {
|
||||
dump_csv($row);
|
||||
} else {
|
||||
$insert = "INSERT INTO " . idf_escape($table) . ($select ? " (" . implode(", ", array_map('idf_escape', array_keys($row))) . ")" : "") . " VALUES ";
|
||||
$insert = "INSERT INTO " . idf_escape($table) . ($select ? " (" . implode(", ", array_map('idf_escape', array_keys($row))) . ")" : "") . " VALUES";
|
||||
$row2 = array();
|
||||
foreach ($row as $key => $val) {
|
||||
$row2[$key] = (isset($val) ? "'" . $dbh->escape_string($val) . "'" : "NULL");
|
||||
@@ -141,7 +141,7 @@ function dump_data($table, $style, $select = "") {
|
||||
}
|
||||
echo "$insert (" . implode(", ", $row2) . ") ON DUPLICATE KEY UPDATE " . implode(", ", $set) . ";\n";
|
||||
} else {
|
||||
$s = "(" . implode(", ", $row2) . ")";
|
||||
$s = "\n(" . implode(", ", $row2) . ")";
|
||||
if (!$length) {
|
||||
echo $insert, $s;
|
||||
$length = strlen($insert) + strlen($s);
|
||||
@@ -150,7 +150,7 @@ function dump_data($table, $style, $select = "") {
|
||||
if ($length < $max_packet) {
|
||||
echo ", ", $s;
|
||||
} else {
|
||||
echo ";\n", $insert, $s;
|
||||
echo ";\n$insert", $s;
|
||||
$length = strlen($insert) + strlen($s);
|
||||
}
|
||||
}
|
||||
@@ -175,4 +175,4 @@ function dump_headers($identifier, $multi_table = false) {
|
||||
|
||||
$dump_output = "<select name='output'><option value='text'>" . lang('open') . "</option><option value='file'>" . lang('save') . "</option></select>";
|
||||
$dump_format = "<select name='format'><option value='sql'>" . lang('SQL') . "</option><option value='csv'>" . lang('CSV') . "</option></select>";
|
||||
$max_packet = 0;
|
||||
$max_packet = 1048576; // default, minimum is 1024
|
||||
|
@@ -74,9 +74,11 @@ if ($_POST && !$error) {
|
||||
dump_table($_GET["select"], "");
|
||||
$query = "SELECT " . ($select ? implode(", ", $select) : "*") . " FROM " . idf_escape($_GET["select"]);
|
||||
if (is_array($_POST["check"])) {
|
||||
$union = array();
|
||||
foreach ($_POST["check"] as $val) {
|
||||
dump_data($_GET["select"], "INSERT", "$query WHERE " . implode(" AND ", where_check($val)) . " LIMIT 1");
|
||||
$union[] = "($query WHERE " . implode(" AND ", where_check($val)) . " LIMIT 1)";
|
||||
}
|
||||
dump_data($_GET["select"], "INSERT", implode(" UNION ALL ", $union));
|
||||
} else {
|
||||
dump_data($_GET["select"], "INSERT", $query . ($where ? " WHERE " . implode(" AND ", $where) : ""));
|
||||
}
|
||||
|
Reference in New Issue
Block a user