From 5ef643c3ff6caf5e18d057ccc464077ee13ca161 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Tue, 19 Dec 2023 23:32:58 +0100 Subject: [PATCH] Use DbTableExists in WrapperController Signed-off-by: Kamil Tekiela --- app/services_controllers.php | 1 + src/Controllers/Transformation/WrapperController.php | 11 ++++------- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/app/services_controllers.php b/app/services_controllers.php index f36453c479..ba9146612e 100644 --- a/app/services_controllers.php +++ b/app/services_controllers.php @@ -1576,6 +1576,7 @@ return [ '$transformations' => '@transformations', '$relation' => '@relation', '$dbi' => '@dbi', + '$dbTableExists' => '@' . DbTableExists::class, ], ], UserPasswordController::class => [ diff --git a/src/Controllers/Transformation/WrapperController.php b/src/Controllers/Transformation/WrapperController.php index f5927e4064..13ed9df4c2 100644 --- a/src/Controllers/Transformation/WrapperController.php +++ b/src/Controllers/Transformation/WrapperController.php @@ -8,6 +8,7 @@ use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\Controllers\AbstractController; use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; +use PhpMyAdmin\DbTableExists; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\InvalidIdentifier; @@ -42,6 +43,7 @@ class WrapperController extends AbstractController private Transformations $transformations, private Relation $relation, private DatabaseInterface $dbi, + private DbTableExists $dbTableExists, ) { parent::__construct($response, $template); } @@ -61,13 +63,8 @@ class WrapperController extends AbstractController return; } - $hasTable = (bool) $this->dbi->getCache()->getCachedTableContent([$db->getName(), $table->getName()]); - if (! $hasTable) { - $result = $this->dbi->tryQuery('SHOW TABLES LIKE ' . $this->dbi->quoteString($table->getName()) . ';'); - $hasTable = $result !== false && $result->numRows() > 0; - if (! $hasTable) { - return; - } + if (! $this->dbTableExists->hasTable($db, $table)) { + return; } $query = $this->getQuery($table, $request->getParam('where_clause'), $request->getParam('where_clause_sign'));