From dc843cc95fd0139d6f7da1b9d963f2997a5cb0d4 Mon Sep 17 00:00:00 2001 From: jakubvrana Date: Thu, 11 Jun 2009 11:13:45 +0000 Subject: [PATCH] Prepare bulk database insert git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@666 7c3ca157-0c34-0410-bff1-cbf682f78f5c --- database.inc.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/database.inc.php b/database.inc.php index aeb89093..0e901fa1 100644 --- a/database.inc.php +++ b/database.inc.php @@ -5,7 +5,17 @@ if ($_POST && !$error) { query_redirect("DROP DATABASE " . idf_escape($_GET["db"]), substr(preg_replace('~db=[^&]*&~', '', $SELF), 0, -1), lang('Database has been dropped.')); } elseif ($_GET["db"] !== $_POST["name"]) { unset($_SESSION["databases"][$_GET["server"]]); - if (query_redirect("CREATE DATABASE " . idf_escape($_POST["name"]) . ($_POST["collation"] ? " COLLATE '" . $dbh->escape_string($_POST["collation"]) . "'" : ""), $SELF . "db=" . urlencode($_POST["name"]), lang('Database has been created.'), !strlen($_GET["db"]))) { + $dbs = explode("\n", str_replace("\r", "", $_POST["name"])); + $failed = false; + foreach ($dbs as $db) { + if (count($dbs) == 1 || strlen($db)) { + if (!queries("CREATE DATABASE " . idf_escape($db) . ($_POST["collation"] ? " COLLATE '" . $dbh->escape_string($_POST["collation"]) . "'" : ""))) { + $failed = true; + } + $last = $db; + } + } + if (query_redirect(queries(), $SELF . "db=" . urlencode($last), lang('Database has been created.'), !strlen($_GET["db"]), false, $failed)) { $result = $dbh->query("SHOW TABLES"); while ($row = $result->fetch_row()) { if (!queries("RENAME TABLE " . idf_escape($row[0]) . " TO " . idf_escape($_POST["name"]) . "." . idf_escape($row[0]))) { @@ -14,7 +24,7 @@ if ($_POST && !$error) { } $result->free(); if (!$row) { - $dbh->query("DROP DATABASE " . idf_escape($_GET["db"])); + queries("DROP DATABASE " . idf_escape($_GET["db"])); } query_redirect(queries(), preg_replace('~db=[^&]*&~', '', $SELF) . "db=" . urlencode($_POST["name"]), lang('Database has been renamed.'), !$row, false, $row); }