From: jakubvrana Date: Thu, 26 Jul 2007 11:11:58 +0000 (+0000) Subject: Detect prefix from grants X-Git-Tag: v3.0.0~1248 X-Git-Url: https://git.joonet.de/?a=commitdiff_plain;h=33bf3b32a9743b12a1f7348c28e3cea97bb30967;p=adminer.git Detect prefix from grants git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@263 7c3ca157-0c34-0410-bff1-cbf682f78f5c --- diff --git a/database.inc.php b/database.inc.php index bb4a3304..a52c3820 100644 --- a/database.inc.php +++ b/database.inc.php @@ -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];