diff --git a/libraries/classes/Bookmark.php b/libraries/classes/Bookmark.php index 035188bf87..fa7e96d061 100644 --- a/libraries/classes/Bookmark.php +++ b/libraries/classes/Bookmark.php @@ -305,7 +305,12 @@ class Bookmark $query = 'SELECT * FROM ' . Util::backquote($bookmarkFeature->database) . '.' . Util::backquote($bookmarkFeature->bookmark) - . " WHERE dbase = '" . $dbi->escapeString($db) . "'"; + . ' WHERE ' . Util::backquote($id_field) + . " = '" . $dbi->escapeString((string) $id) . "'"; + if ($db !== '') { + $query .= " AND dbase = '" . $dbi->escapeString($db) . "'"; + } + if (! $action_bookmark_all) { $query .= " AND (user = '" . $dbi->escapeString($user) . "'"; @@ -316,8 +321,7 @@ class Bookmark $query .= ')'; } - $query .= ' AND ' . Util::backquote($id_field) - . " = '" . $dbi->escapeString((string) $id) . "' LIMIT 1"; + $query .= ' LIMIT 1'; $result = $dbi->fetchSingleRow($query, DatabaseInterface::FETCH_ASSOC, DatabaseInterface::CONNECT_CONTROL); if (! empty($result)) { diff --git a/test/classes/Stubs/DbiDummy.php b/test/classes/Stubs/DbiDummy.php index 83201d8b90..8c29ac925e 100644 --- a/test/classes/Stubs/DbiDummy.php +++ b/test/classes/Stubs/DbiDummy.php @@ -2495,8 +2495,8 @@ class DbiDummy implements DbiExtension 'result' => [], ], [ - 'query' => 'SELECT * FROM `information_schema`.`bookmark` WHERE dbase = \'my_db\'' - . ' AND (user = \'user\') AND `label` = \'test_tbl\' LIMIT 1', + 'query' => 'SELECT * FROM `information_schema`.`bookmark` WHERE `label` = \'test_tbl\'' + . ' AND dbase = \'my_db\' AND (user = \'user\') LIMIT 1', 'result' => [], ], [