]> git.joonet.de Git - adminer.git/commitdiff
Introduce apply_queries function
authorJakub Vrana <jakub@vrana.cz>
Mon, 17 May 2010 16:18:32 +0000 (18:18 +0200)
committerJakub Vrana <jakub@vrana.cz>
Mon, 17 May 2010 16:18:32 +0000 (18:18 +0200)
adminer/drivers/mssql.inc.php
adminer/drivers/mysql.inc.php
adminer/drivers/oracle.inc.php
adminer/drivers/pgsql.inc.php
adminer/drivers/sqlite.inc.php
adminer/include/functions.inc.php

index 4fa7c81ba0b563a1cf3ab130543378248cabf771..ccbd6f29ebd6cfe38d81a83de1a367b193a0454a 100644 (file)
@@ -435,12 +435,7 @@ WHERE OBJECT_NAME(indexes.object_id) = " . $connection2->quote($table)
        }
 
        function truncate_tables($tables) {
-               foreach ($tables as $table) {
-                       if (!queries("TRUNCATE TABLE " . table($table))) {
-                               return false;
-                       }
-               }
-               return true;
+               return apply_queries("TRUNCATE TABLE", $tables);
        }
 
        function drop_views($views) {
@@ -452,12 +447,7 @@ WHERE OBJECT_NAME(indexes.object_id) = " . $connection2->quote($table)
        }
 
        function move_tables($tables, $views, $target) {
-               foreach (array_merge($tables, $views) as $table) {
-                       if (!queries("ALTER SCHEMA " . idf_escape($target) . " TRANSFER " . table($table))) {
-                               return false;
-                       }
-               }
-               return true;
+               return apply_queries("ALTER SCHEMA " . idf_escape($target) . " TRANSFER", array_merge($tables, $views));
        }
        
        function trigger($name) {
index 5f261d35e574200c58dbe6736ef8506bbbfb9415..cde307f356008bfd2ff51436c0270df50c83817b 100644 (file)
@@ -526,12 +526,7 @@ if (!defined("DRIVER")) {
        */
        function drop_databases($databases) {
                set_session("databases", null);
-               foreach ($databases as $db) {
-                       if (!queries("DROP DATABASE " . idf_escape($db))) {
-                               return false;
-                       }
-               }
-               return true;
+               return apply_queries("DROP DATABASE", $db, 'idf_escape');
        }
        
        /** Rename database from DB
@@ -634,12 +629,7 @@ if (!defined("DRIVER")) {
        * @return bool
        */
        function truncate_tables($tables) {
-               foreach ($tables as $table) {
-                       if (!queries("TRUNCATE TABLE " . table($table))) {
-                               return false;
-                       }
-               }
-               return true;
+               return apply_queries("TRUNCATE TABLE", $tables);
        }
        
        /** Drop views
index 4f40f1c03ec29900a525462a525ec52a64269b23..19c6e0fb46056a57e7ad7270c255e3cdc4c3bf43 100644 (file)
@@ -269,30 +269,15 @@ if (isset($_GET["oracle"])) {
        }
        
        function truncate_tables($tables) {
-               foreach ($tables as $table) {
-                       if (!queries("TRUNCATE TABLE " . table($table))) {
-                               return false;
-                       }
-               }
-               return true;
+               return apply_queries("TRUNCATE TABLE", $tables);
        }
 
        function drop_views($views) {
-               foreach ($views as $table) {
-                       if (!queries("DROP VIEW " . table($table))) {
-                               return false;
-                       }
-               }
-               return true;
+               return apply_queries("DROP VIEW", $views);
        }
 
        function drop_tables($tables) {
-               foreach ($tables as $table) {
-                       if (!queries("DROP TABLE " . table($table))) {
-                               return false;
-                       }
-               }
-               return true;
+               return apply_queries("DROP TABLE", $tables);
        }
 
        function begin() {
index 25d7f859ac964a92e4377117a7f752a8aeaf7021..baa57cf5711023e1d61f4126ee6c7bd61d124851 100644 (file)
@@ -318,12 +318,7 @@ WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name = " . $connection->qu
        function drop_databases($databases) {
                global $connection;
                $connection->close();
-               foreach ($databases as $db) {
-                       if (!queries("DROP DATABASE " . idf_escape($db))) {
-                               return false;
-                       }
-               }
-               return true;
+               return apply_queries("DROP DATABASE", $databases, 'idf_escape');
        }
        
        function rename_database($name, $collation) {
index de8710337e11d41ded9890d32ba42a65b861c547..cb5433eb3a64383c7e637bab67e898db26d8112c 100644 (file)
@@ -430,30 +430,15 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
        }
        
        function truncate_tables($tables) {
-               foreach ($tables as $table) {
-                       if (!queries("DELETE FROM " . table($table))) {
-                               return false;
-                       }
-               }
-               return true;
+               return apply_queries("DELETE FROM", $tables);
        }
        
        function drop_views($views) {
-               foreach ($views as $view) {
-                       if (!queries("DROP VIEW " . table($view))) {
-                               return false;
-                       }
-               }
-               return true;
+               return apply_queries("DROP VIEW", $views);
        }
        
        function drop_tables($tables) {
-               foreach ($tables as $table) {
-                       if (!queries("DROP TABLE " . table($table))) {
-                               return false;
-                       }
-               }
-               return true;
+               return apply_queries("DROP TABLE", $tables);
        }
        
        function move_tables($tables, $views, $target) {
index 9ba0f6918785fa00a573d469a2cf333c3af0ed27..a045eb3eaf800d036ca79f0212b5243f92ff5fbf 100644 (file)
@@ -361,6 +361,21 @@ function queries($query = null) {
        return $connection->query($query);
 }
 
+/** Apply command to all array items
+* @param string
+* @param array
+* @param callback
+* @return bool
+*/
+function apply_queries($query, $tables, $escape = 'table') {
+       foreach ($tables as $table) {
+               if (!queries("$query " . $escape($table))) {
+                       return false;
+               }
+       }
+       return true;
+}
+
 /** Redirect by remembered queries
 * @param string
 * @param string