From 33bf3b32a9743b12a1f7348c28e3cea97bb30967 Mon Sep 17 00:00:00 2001 From: jakubvrana Date: Thu, 26 Jul 2007 11:11:58 +0000 Subject: [PATCH] Detect prefix from grants git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@263 7c3ca157-0c34-0410-bff1-cbf682f78f5c --- database.inc.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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];