]> git.joonet.de Git - adminer.git/commitdiff
Prepare bulk database insert
authorjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Thu, 11 Jun 2009 11:13:45 +0000 (11:13 +0000)
committerjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Thu, 11 Jun 2009 11:13:45 +0000 (11:13 +0000)
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@666 7c3ca157-0c34-0410-bff1-cbf682f78f5c

database.inc.php

index aeb8909313877e3f54fa0c2a22b2240e1998a08a..0e901fa1317399373705a7e66f5f07cad12ef6f6 100644 (file)
@@ -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);
                }