]> git.joonet.de Git - adminer.git/commitdiff
Unlock session in alter database
authorJakub Vrana <jakub@vrana.cz>
Tue, 24 Jun 2014 13:26:51 +0000 (15:26 +0200)
committerJakub Vrana <jakub@vrana.cz>
Tue, 24 Jun 2014 13:26:51 +0000 (15:26 +0200)
adminer/database.inc.php
adminer/drivers/mysql.inc.php
changes.txt

index 61b71443f19d5aa2d3c201fcc0c5650006c1f008..a0c06b4f622334c58c96414843fd8544191c34de 100644 (file)
@@ -2,7 +2,6 @@
 $row = $_POST;
 
 if ($_POST && !$error && !isset($_POST["add_x"])) { // add is an image and PHP changes add.x to add_x
-       restart_session();
        $name = trim($row["name"]);
        if ($_POST["drop"]) {
                $_GET["db"] = ""; // to save in global history
@@ -24,6 +23,8 @@ if ($_POST && !$error && !isset($_POST["add_x"])) { // add is an image and PHP c
                                        $last = $db;
                                }
                        }
+                       restart_session();
+                       set_session("dbs", null);
                        queries_redirect(ME . "db=" . urlencode($last), lang('Database has been created.'), $success);
                }
        } else {
index def95e3b54b0fb1b2390fcdb90c58ed6b0d56d62..91cdeb01ad96e3fd274bb05d4349b7ced01721d0 100644 (file)
@@ -584,7 +584,6 @@ if (!defined("DRIVER")) {
        * @return string
        */
        function create_database($db, $collation) {
-               set_session("dbs", null);
                return queries("CREATE DATABASE " . idf_escape($db) . ($collation ? " COLLATE " . q($collation) : ""));
        }
 
@@ -593,9 +592,10 @@ if (!defined("DRIVER")) {
        * @return bool
        */
        function drop_databases($databases) {
+               $return = apply_queries("DROP DATABASE", $databases, 'idf_escape');
                restart_session();
                set_session("dbs", null);
-               return apply_queries("DROP DATABASE", $databases, 'idf_escape');
+               return $return;
        }
 
        /** Rename database from DB
@@ -604,18 +604,21 @@ if (!defined("DRIVER")) {
        * @return bool
        */
        function rename_database($name, $collation) {
+               $return = false;
                if (create_database($name, $collation)) {
                        //! move triggers
                        $rename = array();
                        foreach (tables_list() as $table => $type) {
                                $rename[] = table($table) . " TO " . idf_escape($name) . "." . table($table);
                        }
-                       if (!$rename || queries("RENAME TABLE " . implode(", ", $rename))) {
+                       $return = (!$rename || queries("RENAME TABLE " . implode(", ", $rename)));
+                       if ($return) {
                                queries("DROP DATABASE " . idf_escape(DB));
-                               return true;
                        }
+                       restart_session();
+                       set_session("dbs", null);
                }
-               return false;
+               return $return;
        }
 
        /** Generate modifier for auto increment column
index 50b8f46fe4e4111abae1a73f01ad8c958e867ea7..ad042483d565f8e23ac27d8ce93f6fcf35f6e8b7 100644 (file)
@@ -1,5 +1,6 @@
 Adminer 4.1.1-dev:
 Fix reading routine column collations
+Unlock session in alter database
 MySQL: Use utf8mb4 if available
 
 Adminer 4.1.0 (released 2014-04-18)