]> git.joonet.de Git - adminer.git/commitdiff
Detect prefix from grants
authorjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Thu, 26 Jul 2007 11:11:58 +0000 (11:11 +0000)
committerjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Thu, 26 Jul 2007 11:11:58 +0000 (11:11 +0000)
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@263 7c3ca157-0c34-0410-bff1-cbf682f78f5c

database.inc.php

index bb4a3304f7e520a9f41150f4e88f9fae9d310602..a52c3820ffaddfc08f2a89981e66b5d48aca0986 100644 (file)
@@ -39,7 +39,16 @@ if ($_POST) {
 } else {
        $name = $_GET["db"];
        $collate = array();
-       if (strlen($_GET["db"]) && ($result = $mysql->query("SHOW CREATE DATABASE " . idf_escape($_GET["db"])))) {
+       if (!strlen($_GET["db"])) {
+               $result = $mysql->query("SHOW GRANTS");
+               while ($row = $result->fetch_row()) {
+                       if (preg_match('~ ON (`(([^\\\\`]+|``|\\\\.)*)%`\\.\\*)?~', $row[0], $match) && $match[1]) {
+                               $name = stripcslashes(idf_unescape($match[2]));
+                               break;
+                       }
+               }
+               $result->free();
+       } elseif (($result = $mysql->query("SHOW CREATE DATABASE " . idf_escape($_GET["db"])))) {
                $create = $mysql->result($result, 1);
                if (preg_match('~ COLLATE ([^ ]+)~', $create, $match)) {
                        $collate = $match[1];