]> git.joonet.de Git - adminer.git/commitdiff
Add helper function
authorJakub Vrana <jakub@vrana.cz>
Sat, 8 Mar 2025 05:13:18 +0000 (06:13 +0100)
committerJakub Vrana <jakub@vrana.cz>
Sat, 8 Mar 2025 05:13:18 +0000 (06:13 +0100)
13 files changed:
adminer/db.inc.php
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/dump.inc.php
adminer/include/functions.inc.php
adminer/select.inc.php
adminer/user.inc.php
editor/include/adminer.inc.php
plugins/dump-date.php
plugins/login-table.php

index 563b71f5105c5e053f932016ab5a620f632290e4..d969733f3ccf416998eafeceacb55e7859132a5b 100644 (file)
@@ -123,7 +123,7 @@ if ($adminer->homepage()) {
                        }
 
                        echo "<tr><td><th>" . lang('%d in total', count($tables_list));
-                       echo "<td>" . h(JUSH == "sql" ? $connection->result("SELECT @@default_storage_engine") : "");
+                       echo "<td>" . h(JUSH == "sql" ? get_val("SELECT @@default_storage_engine") : "");
                        echo "<td>" . h(db_collation(DB, collations()));
                        foreach (array("Data_length", "Index_length", "Data_free") as $key) {
                                echo "<td align='right' id='sum-$key'>";
@@ -232,7 +232,7 @@ if ($adminer->homepage()) {
                                        echo '<td><a href="' . h(ME) . 'event=' . urlencode($row["Name"]) . '">' . lang('Alter') . '</a>';
                                }
                                echo "</table>\n";
-                               $event_scheduler = $connection->result("SELECT @@event_scheduler");
+                               $event_scheduler = get_val("SELECT @@event_scheduler");
                                if ($event_scheduler && $event_scheduler != "ON") {
                                        echo "<p class='error'><code class='jush-sqlset'>event_scheduler</code>: " . h($event_scheduler) . "\n";
                                }
index 6c97323aac829c1b89a873323aeff4e49e19d0a1..34df787c7f709b048fbb508a4146e73a8cc148b7 100644 (file)
@@ -304,8 +304,7 @@ if (isset($_GET["mssql"])) {
        }
 
        function db_collation($db, $collations) {
-               global $connection;
-               return $connection->result("SELECT collation_name FROM sys.databases WHERE name = " . q($db));
+               return get_val("SELECT collation_name FROM sys.databases WHERE name = " . q($db));
        }
 
        function engines() {
@@ -313,8 +312,7 @@ if (isset($_GET["mssql"])) {
        }
 
        function logged_user() {
-               global $connection;
-               return $connection->result("SELECT SUSER_NAME()");
+               return get_val("SELECT SUSER_NAME()");
        }
 
        function tables_list() {
@@ -326,7 +324,7 @@ if (isset($_GET["mssql"])) {
                $return = array();
                foreach ($databases as $db) {
                        $connection->select_db($db);
-                       $return[$db] = $connection->result("SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES");
+                       $return[$db] = get_val("SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES");
                }
                return $return;
        }
@@ -355,10 +353,9 @@ WHERE schema_id = SCHEMA_ID(" . q(get_schema()) . ") AND type IN ('S', 'U', 'V')
        }
 
        function fields($table) {
-               global $connection;
                $comments = get_key_vals("SELECT objname, cast(value as varchar(max)) FROM fn_listextendedproperty('MS_DESCRIPTION', 'schema', " . q(get_schema()) . ", 'table', " . q($table) . ", 'column', NULL)");
                $return = array();
-               $table_id = $connection->result("SELECT object_id FROM sys.all_objects WHERE schema_id = SCHEMA_ID(" . q(get_schema()) . ") AND type IN ('S', 'U', 'V') AND name = " . q($table));
+               $table_id = get_val("SELECT object_id FROM sys.all_objects WHERE schema_id = SCHEMA_ID(" . q(get_schema()) . ") AND type IN ('S', 'U', 'V') AND name = " . q($table));
                foreach (
                        get_rows("SELECT c.max_length, c.precision, c.scale, c.name, c.is_nullable, c.is_identity, c.collation_name, t.name type, CAST(d.definition as text) [default], d.name default_constraint, i.is_primary_key
 FROM sys.all_columns c
@@ -415,8 +412,7 @@ WHERE OBJECT_NAME(i.object_id) = " . q($table), $connection2) as $row
        }
 
        function view($name) {
-               global $connection;
-               return array("select" => preg_replace('~^(?:[^[]|\[[^]]*])*\s+AS\s+~isU', '', $connection->result("SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = SCHEMA_NAME() AND TABLE_NAME = " . q($name))));
+               return array("select" => preg_replace('~^(?:[^[]|\[[^]]*])*\s+AS\s+~isU', '', get_val("SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = SCHEMA_NAME() AND TABLE_NAME = " . q($name))));
        }
 
        function collations() {
@@ -541,8 +537,7 @@ WHERE OBJECT_NAME(i.object_id) = " . q($table), $connection2) as $row
        }
 
        function last_id() {
-               global $connection;
-               return $connection->result("SELECT SCOPE_IDENTITY()"); // @@IDENTITY can return trigger INSERT
+               return get_val("SELECT SCOPE_IDENTITY()"); // @@IDENTITY can return trigger INSERT
        }
 
        function explain($connection, $query) {
@@ -635,11 +630,10 @@ WHERE sys1.xtype = 'TR' AND sys2.name = " . q($table)) as $row
        }
 
        function get_schema() {
-               global $connection;
                if ($_GET["ns"] != "") {
                        return $_GET["ns"];
                }
-               return $connection->result("SELECT SCHEMA_NAME()");
+               return get_val("SELECT SCHEMA_NAME()");
        }
 
        function set_schema($schema) {
index 64142e1d7c7e7faf43d7957a2908ed791905c338..4a1e71e969335f77aed2fbb43531a3e1ad4a780a 100644 (file)
@@ -484,9 +484,8 @@ if (!defined('Adminer\DRIVER')) {
        * @return string
        */
        function db_collation($db, $collations) {
-               global $connection;
                $return = null;
-               $create = $connection->result("SHOW CREATE DATABASE " . idf_escape($db), 1);
+               $create = get_val("SHOW CREATE DATABASE " . idf_escape($db), 1);
                if (preg_match('~ COLLATE ([^ ]+)~', $create, $match)) {
                        $return = $match[1];
                } elseif (preg_match('~ CHARACTER SET ([^ ]+)~', $create, $match)) {
@@ -513,8 +512,7 @@ if (!defined('Adminer\DRIVER')) {
        * @return string
        */
        function logged_user() {
-               global $connection;
-               return $connection->result("SELECT USER()");
+               return get_val("SELECT USER()");
        }
 
        /** Get tables list
@@ -646,10 +644,10 @@ if (!defined('Adminer\DRIVER')) {
        * @return array [$name => ["db" => , "ns" => , "table" => , "source" => [], "target" => [], "on_delete" => , "on_update" => ]]
        */
        function foreign_keys($table) {
-               global $connection, $driver;
+               global $driver;
                static $pattern = '(?:`(?:[^`]|``)+`|"(?:[^"]|"")+")';
                $return = array();
-               $create_table = $connection->result("SHOW CREATE TABLE " . table($table), 1);
+               $create_table = get_val("SHOW CREATE TABLE " . table($table), 1);
                if ($create_table) {
                        preg_match_all("~CONSTRAINT ($pattern) FOREIGN KEY ?\\(((?:$pattern,? ?)+)\\) REFERENCES ($pattern)(?:\\.($pattern))? \\(((?:$pattern,? ?)+)\\)(?: ON DELETE ($driver->onActions))?(?: ON UPDATE ($driver->onActions))?~", $create_table, $matches, PREG_SET_ORDER);
                        foreach ($matches as $match) {
@@ -673,8 +671,7 @@ if (!defined('Adminer\DRIVER')) {
        * @return array ["select" => ]
        */
        function view($name) {
-               global $connection;
-               return array("select" => preg_replace('~^(?:[^`]|`[^`]*`)*\s+AS\s+~isU', '', $connection->result("SHOW CREATE VIEW " . table($name), 1)));
+               return array("select" => preg_replace('~^(?:[^`]|`[^`]*`)*\s+AS\s+~isU', '', get_val("SHOW CREATE VIEW " . table($name), 1)));
        }
 
        /** Get sorted grouped list of collations
@@ -967,12 +964,12 @@ if (!defined('Adminer\DRIVER')) {
        * @return array ["fields" => ["field" => , "type" => , "length" => , "unsigned" => , "inout" => , "collation" => ], "returns" => , "definition" => , "language" => ]
        */
        function routine($name, $type) {
-               global $connection, $driver;
+               global $driver;
                $aliases = array("bool", "boolean", "integer", "double precision", "real", "dec", "numeric", "fixed", "national char", "national varchar");
                $space = "(?:\\s|/\\*[\s\S]*?\\*/|(?:#|-- )[^\n]*\n?|--\r?\n)";
                $type_pattern = "((" . implode("|", array_merge(array_keys($driver->types()), $aliases)) . ")\\b(?:\\s*\\(((?:[^'\")]|$driver->enumLength)++)\\))?\\s*(zerofill\\s*)?(unsigned(?:\\s+zerofill)?)?)(?:\\s*(?:CHARSET|CHARACTER\\s+SET)\\s*['\"]?([^'\"\\s,]+)['\"]?)?";
                $pattern = "$space*(" . ($type == "FUNCTION" ? "" : $driver->inout) . ")?\\s*(?:`((?:[^`]|``)*)`\\s*|\\b(\\S+)\\s+)$type_pattern";
-               $create = $connection->result("SHOW CREATE $type " . idf_escape($name), 2);
+               $create = get_val("SHOW CREATE $type " . idf_escape($name), 2);
                preg_match("~\\(((?:$pattern\\s*,?)*)\\)\\s*" . ($type == "FUNCTION" ? "RETURNS\\s+$type_pattern\\s+" : "") . "(.*)~is", $create, $match);
                $fields = array();
                preg_match_all("~$pattern\\s*,?~is", $match[1], $matches, PREG_SET_ORDER);
@@ -990,7 +987,7 @@ if (!defined('Adminer\DRIVER')) {
                }
                return array(
                        "fields" => $fields,
-                       "comment" => $connection->result("SELECT ROUTINE_COMMENT FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = DATABASE() AND ROUTINE_NAME = " . q($name)),
+                       "comment" => get_val("SELECT ROUTINE_COMMENT FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = DATABASE() AND ROUTINE_NAME = " . q($name)),
                ) + ($type != "FUNCTION" ? array("definition" => $match[11]) : array(
                        "returns" => array("type" => $match[12], "length" => $match[13], "unsigned" => $match[15], "collation" => $match[16]),
                        "definition" => $match[17],
@@ -1025,8 +1022,7 @@ if (!defined('Adminer\DRIVER')) {
        * @return string
        */
        function last_id() {
-               global $connection;
-               return $connection->result("SELECT LAST_INSERT_ID()"); // mysql_insert_id() truncates bigint
+               return get_val("SELECT LAST_INSERT_ID()"); // mysql_insert_id() truncates bigint
        }
 
        /** Explain select
@@ -1089,8 +1085,7 @@ if (!defined('Adminer\DRIVER')) {
        * @return string
        */
        function create_sql($table, $auto_increment, $style) {
-               global $connection;
-               $return = $connection->result("SHOW CREATE TABLE " . table($table), 1);
+               $return = get_val("SHOW CREATE TABLE " . table($table), 1);
                if (!$auto_increment) {
                        $return = preg_replace('~ AUTO_INCREMENT=\d+~', '', $return); //! skip comments
                }
@@ -1208,7 +1203,6 @@ if (!defined('Adminer\DRIVER')) {
        * @return int
        */
        function max_connections() {
-               global $connection;
-               return $connection->result("SELECT @@max_connections");
+               return get_val("SELECT @@max_connections");
        }
 }
index 86f52e513a09ba27534a5f6a8da3aa23e8ffd814..d050d33ffc740f1e35b651333d6eb0de52a2303a 100644 (file)
@@ -241,8 +241,7 @@ ORDER BY 1"
        }
 
        function db_collation($db, $collations) {
-               global $connection;
-               return $connection->result("SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET'"); //! respect $db
+               return get_val("SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET'"); //! respect $db
        }
 
        function engines() {
@@ -250,8 +249,7 @@ ORDER BY 1"
        }
 
        function logged_user() {
-               global $connection;
-               return $connection->result("SELECT USER FROM DUAL");
+               return get_val("SELECT USER FROM DUAL");
        }
 
        function get_current_db() {
@@ -284,10 +282,9 @@ ORDER BY 1"
        }
 
        function count_tables($databases) {
-               global $connection;
                $return = array();
                foreach ($databases as $db) {
-                       $return[$db] = $connection->result("SELECT COUNT(*) FROM all_tables WHERE tablespace_name = " . q($db));
+                       $return[$db] = get_val("SELECT COUNT(*) FROM all_tables WHERE tablespace_name = " . q($db));
                }
                return $return;
        }
@@ -505,8 +502,7 @@ AND c_src.TABLE_NAME = " . q($table);
        }
 
        function get_schema() {
-               global $connection;
-               return $connection->result("SELECT sys_context('USERENV', 'SESSION_USER') FROM dual");
+               return get_val("SELECT sys_context('USERENV', 'SESSION_USER') FROM dual");
        }
 
        function set_schema($scheme, $connection2 = null) {
index 919d56d5e400bc6a3b9aa44207fe1ebe92b824d8..57875bdc56ed49545ce597217de618dcdee03a5f 100644 (file)
@@ -345,8 +345,7 @@ ORDER BY datname");
        }
 
        function db_collation($db, $collations) {
-               global $connection;
-               return $connection->result("SELECT datcollate FROM pg_database WHERE datname = " . q($db));
+               return get_val("SELECT datcollate FROM pg_database WHERE datname = " . q($db));
        }
 
        function engines() {
@@ -354,8 +353,7 @@ ORDER BY datname");
        }
 
        function logged_user() {
-               global $connection;
-               return $connection->result("SELECT user");
+               return get_val("SELECT user");
        }
 
        function tables_list() {
@@ -384,10 +382,9 @@ ORDER BY 1";
        }
 
        function table_status($name = "") {
-               global $connection;
                static $has_size;
                if ($has_size === null) {
-                       $has_size = $connection->result("SELECT 'pg_table_size'::regproc");
+                       $has_size = get_val("SELECT 'pg_table_size'::regproc");
                }
                $return = array();
                foreach (
@@ -515,8 +512,7 @@ ORDER BY conkey, conname") as $row
        }
 
        function view($name) {
-               global $connection;
-               return array("select" => trim($connection->result("SELECT pg_get_viewdef(" . $connection->result("SELECT oid FROM pg_class WHERE relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema()) AND relname = " . q($name)) . ")")));
+               return array("select" => trim(get_val("SELECT pg_get_viewdef(" . get_val("SELECT oid FROM pg_class WHERE relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema()) AND relname = " . q($name)) . ")")));
        }
 
        function collations() {
@@ -764,8 +760,7 @@ ORDER BY SPECIFIC_NAME');
        }
 
        function found_rows($table_status, $where) {
-               global $connection;
-               if (preg_match("~ rows=([0-9]+)~", $connection->result("EXPLAIN SELECT * FROM " . idf_escape($table_status["Name"]) . ($where ? " WHERE " . implode(" AND ", $where) : "")), $regs)) {
+               if (preg_match("~ rows=([0-9]+)~", get_val("EXPLAIN SELECT * FROM " . idf_escape($table_status["Name"]) . ($where ? " WHERE " . implode(" AND ", $where) : "")), $regs)) {
                        return $regs[1];
                }
                return false;
@@ -792,8 +787,7 @@ AND typelem = 0"
        }
 
        function get_schema() {
-               global $connection;
-               return $connection->result("SELECT current_schema()");
+               return get_val("SELECT current_schema()");
        }
 
        function set_schema($schema, $connection2 = null) {
@@ -947,7 +941,6 @@ AND typelem = 0"
        }
 
        function max_connections() {
-               global $connection;
-               return $connection->result("SHOW max_connections");
+               return get_val("SHOW max_connections");
        }
 }
index ee75d48d769cc0223386b1bc6ad0eab79325ad78..8b72701144c75ee26243590b70ceed1eb55b3b58 100644 (file)
@@ -207,16 +207,14 @@ if (isset($_GET["sqlite"])) {
        }
 
        function limit1($table, $query, $where, $separator = "\n") {
-               global $connection;
-               return (preg_match('~^INTO~', $query) || $connection->result("SELECT sqlite_compileoption_used('ENABLE_UPDATE_DELETE_LIMIT')")
+               return (preg_match('~^INTO~', $query) || get_val("SELECT sqlite_compileoption_used('ENABLE_UPDATE_DELETE_LIMIT')")
                        ? limit($query, $where, 1, 0, $separator)
                        : " $query WHERE rowid = (SELECT rowid FROM " . table($table) . $where . $separator . "LIMIT 1)" //! use primary key in tables with WITHOUT rowid
                );
        }
 
        function db_collation($db, $collations) {
-               global $connection;
-               return $connection->result("PRAGMA encoding"); // there is no database list so $db == DB
+               return get_val("PRAGMA encoding"); // there is no database list so $db == DB
        }
 
        function engines() {
@@ -236,10 +234,9 @@ if (isset($_GET["sqlite"])) {
        }
 
        function table_status($name = "") {
-               global $connection;
                $return = array();
                foreach (get_rows("SELECT name AS Name, type AS Engine, 'rowid' AS Oid, '' AS Auto_increment FROM sqlite_master WHERE type IN ('table', 'view') " . ($name != "" ? "AND name = " . q($name) : "ORDER BY name")) as $row) {
-                       $row["Rows"] = $connection->result("SELECT COUNT(*) FROM " . idf_escape($row["Name"]));
+                       $row["Rows"] = get_val("SELECT COUNT(*) FROM " . idf_escape($row["Name"]));
                        $return[$row["Name"]] = $row;
                }
                foreach (get_rows("SELECT * FROM sqlite_sequence", null, "") as $row) {
@@ -253,12 +250,10 @@ if (isset($_GET["sqlite"])) {
        }
 
        function fk_support($table_status) {
-               global $connection;
-               return !$connection->result("SELECT sqlite_compileoption_used('OMIT_FOREIGN_KEY')");
+               return !get_val("SELECT sqlite_compileoption_used('OMIT_FOREIGN_KEY')");
        }
 
        function fields($table) {
-               global $connection;
                $return = array();
                $primary = "";
                foreach (get_rows("PRAGMA table_" . (min_version(3.31) ? "x" : "") . "info(" . table($table) . ")") as $row) {
@@ -283,7 +278,7 @@ if (isset($_GET["sqlite"])) {
                                $primary = $name;
                        }
                }
-               $sql = $connection->result("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = " . q($table));
+               $sql = get_val("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = " . q($table));
                $idf = '(("[^"]*+")+|[a-z0-9_]+)';
                preg_match_all('~' . $idf . '\s+text\s+COLLATE\s+(\'[^\']+\'|\S+)~i', $sql, $matches, PREG_SET_ORDER);
                foreach ($matches as $match) {
@@ -362,8 +357,7 @@ if (isset($_GET["sqlite"])) {
        }
 
        function view($name) {
-               global $connection;
-               return array("select" => preg_replace('~^(?:[^`"[]+|`[^`]*`|"[^"]*")* AS\s+~iU', '', $connection->result("SELECT sql FROM sqlite_master WHERE type = 'view' AND name = " . q($name)))); //! identifiers may be inside []
+               return array("select" => preg_replace('~^(?:[^`"[]+|`[^`]*`|"[^"]*")* AS\s+~iU', '', get_val("SELECT sql FROM sqlite_master WHERE type = 'view' AND name = " . q($name)))); //! identifiers may be inside []
        }
 
        function collations() {
@@ -492,7 +486,7 @@ if (isset($_GET["sqlite"])) {
        * @return bool
        */
        function recreate_table($table, $name, $fields, $originals, $foreign, $auto_increment = 0, $indexes = array(), $drop_check = "", $add_check = "") {
-               global $connection, $driver;
+               global $driver;
                if ($table != "") {
                        if (!$fields) {
                                foreach (fields($table) as $key => $field) {
@@ -578,7 +572,7 @@ if (isset($_GET["sqlite"])) {
                                $trigger = trigger($trigger_name);
                                $triggers[] = "CREATE TRIGGER " . idf_escape($trigger_name) . " " . implode(" ", $timing_event) . " ON " . table($name) . "\n$trigger[Statement]";
                        }
-                       $auto_increment = $auto_increment ? 0 : $connection->result("SELECT seq FROM sqlite_sequence WHERE name = " . q($table)); // if $auto_increment is set then it will be updated later
+                       $auto_increment = $auto_increment ? 0 : get_val("SELECT seq FROM sqlite_sequence WHERE name = " . q($table)); // if $auto_increment is set then it will be updated later
                        if (
                                !queries("DROP TABLE " . table($table)) // drop before creating indexes and triggers to allow using old names
                                || ($table == $name && !queries("ALTER TABLE " . table($temp_name) . " RENAME TO " . table($name)))
@@ -642,7 +636,6 @@ if (isset($_GET["sqlite"])) {
        }
 
        function trigger($name) {
-               global $connection;
                if ($name == "") {
                        return array("Statement" => "BEGIN\n\t;\nEND");
                }
@@ -650,7 +643,7 @@ if (isset($_GET["sqlite"])) {
                $trigger_options = trigger_options();
                preg_match(
                        "~^CREATE\\s+TRIGGER\\s*$idf\\s*(" . implode("|", $trigger_options["Timing"]) . ")\\s+([a-z]+)(?:\\s+OF\\s+($idf))?\\s+ON\\s*$idf\\s*(?:FOR\\s+EACH\\s+ROW\\s)?(.*)~is",
-                       $connection->result("SELECT sql FROM sqlite_master WHERE type = 'trigger' AND name = " . q($name)),
+                       get_val("SELECT sql FROM sqlite_master WHERE type = 'trigger' AND name = " . q($name)),
                        $match
                );
                $of = $match[3];
@@ -686,8 +679,7 @@ if (isset($_GET["sqlite"])) {
        }
 
        function last_id() {
-               global $connection;
-               return $connection->result("SELECT LAST_INSERT_ROWID()");
+               return get_val("SELECT LAST_INSERT_ROWID()");
        }
 
        function explain($connection, $query) {
@@ -702,8 +694,7 @@ if (isset($_GET["sqlite"])) {
        }
 
        function create_sql($table, $auto_increment, $style) {
-               global $connection;
-               $return = $connection->result("SELECT sql FROM sqlite_master WHERE type IN ('table', 'view') AND name = " . q($table));
+               $return = get_val("SELECT sql FROM sqlite_master WHERE type IN ('table', 'view') AND name = " . q($table));
                foreach (indexes($table) as $name => $index) {
                        if ($name == '') {
                                continue;
index 032dab2627fc2a6dbf06340a3d75debad8dc86cc..28e1f34f45336c017e2a6e8ebad48e8e99fef8fe 100644 (file)
@@ -42,7 +42,7 @@ SET foreign_key_checks = 0;
        foreach ((array) $databases as $db) {
                $adminer->dumpDatabase($db);
                if ($connection->select_db($db)) {
-                       if ($is_sql && preg_match('~CREATE~', $style) && ($create = $connection->result("SHOW CREATE DATABASE " . idf_escape($db), 1))) {
+                       if ($is_sql && preg_match('~CREATE~', $style) && ($create = get_val("SHOW CREATE DATABASE " . idf_escape($db), 1))) {
                                set_utf8mb4($create);
                                if ($style == "DROP+CREATE") {
                                        echo "DROP DATABASE IF EXISTS " . idf_escape($db) . ";\n";
@@ -79,7 +79,7 @@ SET foreign_key_checks = 0;
 
                                if ($_POST["events"]) {
                                        foreach (get_rows("SHOW EVENTS", null, "-- ") as $row) {
-                                               $create = remove_definer($connection->result("SHOW CREATE EVENT " . idf_escape($row["Name"]), 3));
+                                               $create = remove_definer(get_val("SHOW CREATE EVENT " . idf_escape($row["Name"]), 3));
                                                set_utf8mb4($create);
                                                $out .= ($style != 'DROP+CREATE' ? "DROP EVENT IF EXISTS " . idf_escape($row["Name"]) . ";;\n" : "") . "$create;;\n\n";
                                        }
index ad1c7e826d95fdf4edb5b8d37114d98a89ace916..e1bd69a0ec41830073aaf22f95c036f5c160795d 100644 (file)
@@ -337,6 +337,16 @@ function q($string) {
        return $connection->quote($string);
 }
 
+/** Get single value from database
+* @param string
+* @param int
+* @return string or false if error
+*/
+function get_val($query, $field = 0) {
+       global $connection;
+       return $connection->result($query, $field);
+}
+
 /** Get list of values from database
 * @param string
 * @param mixed
index 9fe71ec0a87ecbd7f9611ec6d99952fa7396b7d9..23658290415929d5f9b8f7859db787c6fceb691e 100644 (file)
@@ -262,7 +262,7 @@ if (!$columns && support("table")) {
 
        $page = $_GET["page"];
        if ($page == "last") {
-               $found_rows = $connection->result(count_rows($TABLE, $where, $is_group, $group));
+               $found_rows = get_val(count_rows($TABLE, $where, $is_group, $group));
                $page = floor(max(0, $found_rows - 1) / $limit);
        }
 
@@ -309,7 +309,7 @@ if (!$columns && support("table")) {
 
                // use count($rows) without LIMIT, COUNT(*) without grouping, FOUND_ROWS otherwise (slowest)
                if ($_GET["page"] != "last" && $limit != "" && $group && $is_group && JUSH == "sql") {
-                       $found_rows = $connection->result(" SELECT FOUND_ROWS()"); // space to allow mysql.trace_mode
+                       $found_rows = get_val(" SELECT FOUND_ROWS()"); // space to allow mysql.trace_mode
                }
 
                if (!$rows) {
index 1fb31ffb988f784cff03db76fb64a3aa707e40b8..5243ea3ba7af1e604944c7e0e0b23a489750b23a 100644 (file)
@@ -56,7 +56,7 @@ if ($_POST && !$error) {
                $pass = $_POST["pass"];
                if ($pass != '' && !$_POST["hashed"] && !min_version(8)) {
                        // compute hash in a separate query so that plain text password is not saved to history
-                       $pass = $connection->result("SELECT PASSWORD(" . q($pass) . ")");
+                       $pass = get_val("SELECT PASSWORD(" . q($pass) . ")");
                        $error = !$pass;
                }
 
@@ -124,7 +124,7 @@ if ($_POST) {
        $row = $_POST;
        $grants = $new_grants;
 } else {
-       $row = $_GET + array("host" => $connection->result("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', -1)")); // create user on the same domain by default
+       $row = $_GET + array("host" => get_val("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', -1)")); // create user on the same domain by default
        $row["pass"] = $old_pass;
        if ($old_pass != "") {
                $row["hashed"] = true;
index 752aa747f25a7e1d4d4ed67bdec6c34587270082..83353b87d4ceef8be3c9bc9ed7ebd90f85d7dc38 100644 (file)
@@ -34,7 +34,7 @@ class Adminer {
                if ($connection) {
                        $databases = $this->databases(false);
                        return (!$databases
-                               ? $connection->result("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', 1)") // username without the database list
+                               ? get_val("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', 1)") // username without the database list
                                : $databases[(information_schema($databases[0]) ? 1 : 0)] // first available database
                        );
                }
@@ -652,7 +652,6 @@ qsl('div').onclick = whisperClick;", "")
        }
 
        function _foreignKeyOptions($table, $column, $value = null) {
-               global $connection;
                if (list($target, $id, $name) = $this->_foreignColumn(column_foreign_keys($table), $column)) {
                        $return = &$this->_values[$target];
                        if ($return === null) {
@@ -660,7 +659,7 @@ qsl('div').onclick = whisperClick;", "")
                                $return = ($table_status["Rows"] > 1000 ? "" : array("" => "") + get_key_vals("SELECT $id, $name FROM " . table($target) . " ORDER BY 2"));
                        }
                        if (!$return && $value !== null) {
-                               return $connection->result("SELECT $name FROM " . table($target) . " WHERE $id = " . q($value));
+                               return get_val("SELECT $name FROM " . table($target) . " WHERE $id = " . q($value));
                        }
                        return $return;
                }
index 56a2bc56a5f8bf6e27b39979b9c42d738f606383..3983109c7cec537b18f148f7f55fb61333d9ea17 100644 (file)
@@ -9,7 +9,6 @@
 class AdminerDumpDate {
 
        function dumpFilename($identifier) {
-               $connection = Adminer\connection();
-               return Adminer\friendly_url(($identifier != "" ? $identifier : (Adminer\SERVER != "" ? Adminer\SERVER : "localhost")) . "-" . $connection->result("SELECT NOW()"));
+               return Adminer\friendly_url(($identifier != "" ? $identifier : (Adminer\SERVER != "" ? Adminer\SERVER : "localhost")) . "-" . Adminer\get_val("SELECT NOW()"));
        }
 }
index 64cd6c1083b033ee9d891bce9bfda8c4dcf08461..051b2cff6847e03ca0e83bc914aa555e2ec61b78 100644 (file)
@@ -27,7 +27,6 @@ class AdminerLoginTable {
        }
 
        function login($login, $password) {
-               $connection = Adminer\connection();
-               return (bool) $connection->result("SELECT COUNT(*) FROM " . Adminer\idf_escape($this->database) . ".login WHERE login = " . Adminer\q($login) . " AND password_sha1 = " . Adminer\q(sha1($password)));
+               return (bool) Adminer\get_val("SELECT COUNT(*) FROM " . Adminer\idf_escape($this->database) . ".login WHERE login = " . Adminer\q($login) . " AND password_sha1 = " . Adminer\q(sha1($password)));
        }
 }