From 99434644efa8c347f06c68b648dd4100f76af2a9 Mon Sep 17 00:00:00 2001 From: Peter Knut Date: Sun, 10 Nov 2024 00:55:46 +0100 Subject: [PATCH] MongoDB: Fix parsing WHERE condition from SQL query Thanks to herobank110 (https://github.com/vrana/adminer/pull/491) --- adminer/drivers/mongo.inc.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/adminer/drivers/mongo.inc.php b/adminer/drivers/mongo.inc.php index 63649f04..1ebece8d 100644 --- a/adminer/drivers/mongo.inc.php +++ b/adminer/drivers/mongo.inc.php @@ -480,7 +480,11 @@ if (isset($_GET["mongo"])) { } function sql_query_where_parser($queryWhere) { - $queryWhere = preg_replace('~^\sWHERE \(?\(?(.+?)\)?\)?$~', '\1', $queryWhere); + $queryWhere = preg_replace('~^\s*WHERE\s*~', "", $queryWhere); + while ($queryWhere[0] == "(") { + $queryWhere = preg_replace('~^\((.*)\)$~', "$1", $queryWhere); + } + $wheres = explode(' AND ', $queryWhere); $wheresOr = explode(') OR (', $queryWhere); $where = array();