diff options
-rw-r--r-- | js/src/functions.js | 2 | ||||
-rw-r--r-- | libraries/classes/Controllers/Database/SqlAutoCompleteController.php | 15 | ||||
-rw-r--r-- | phpstan-baseline.neon | 10 | ||||
-rw-r--r-- | psalm-baseline.xml | 7 |
4 files changed, 20 insertions, 14 deletions
diff --git a/js/src/functions.js b/js/src/functions.js index 4fded3bd23..3577ca0180 100644 --- a/js/src/functions.js +++ b/js/src/functions.js @@ -1321,7 +1321,7 @@ Functions.codeMirrorAutoCompleteOnInputRead = function (instance) { data: params, success: function (data) { if (data.success) { - var tables = JSON.parse(data.tables); + var tables = data.tables; sqlAutoCompleteDefaultTable = window.CommonParams.get('table'); sqlAutoComplete = []; for (var table in tables) { diff --git a/libraries/classes/Controllers/Database/SqlAutoCompleteController.php b/libraries/classes/Controllers/Database/SqlAutoCompleteController.php index 1d20f2b4c7..23cdf87cc5 100644 --- a/libraries/classes/Controllers/Database/SqlAutoCompleteController.php +++ b/libraries/classes/Controllers/Database/SqlAutoCompleteController.php @@ -10,8 +10,6 @@ use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Template; -use function json_encode; - /** * Table/Column autocomplete in SQL editors. */ @@ -28,18 +26,17 @@ class SqlAutoCompleteController extends AbstractController public function __invoke(ServerRequest $request): void { - $GLOBALS['sql_autocomplete'] = true; + $sqlAutocomplete = []; if ($GLOBALS['cfg']['EnableAutocompleteForTablesAndColumns']) { - $GLOBALS['db'] = $_POST['db'] ?? $GLOBALS['db']; - $GLOBALS['sql_autocomplete'] = []; - if ($GLOBALS['db']) { - $tableNames = $this->dbi->getTables($GLOBALS['db']); + $db = $request->getParam('db', $GLOBALS['db']); + if ($db) { + $tableNames = $this->dbi->getTables($db); foreach ($tableNames as $tableName) { - $GLOBALS['sql_autocomplete'][$tableName] = $this->dbi->getColumns($GLOBALS['db'], $tableName); + $sqlAutocomplete[$tableName] = $this->dbi->getColumns($db, $tableName); } } } - $this->response->addJSON(['tables' => json_encode($GLOBALS['sql_autocomplete'])]); + $this->response->addJSON(['tables' => $sqlAutocomplete]); } } diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 0a7dd54ec2..2ed643ebcf 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -1026,6 +1026,16 @@ parameters: path: libraries/classes/Controllers/Database/OperationsController.php - + message: "#^Parameter \\#1 \\$database of method PhpMyAdmin\\\\DatabaseInterface\\:\\:getColumns\\(\\) expects string, mixed given\\.$#" + count: 1 + path: libraries/classes/Controllers/Database/SqlAutoCompleteController.php + + - + message: "#^Parameter \\#1 \\$database of method PhpMyAdmin\\\\DatabaseInterface\\:\\:getTables\\(\\) expects string, mixed given\\.$#" + count: 1 + path: libraries/classes/Controllers/Database/SqlAutoCompleteController.php + + - message: "#^Cannot access offset non\\-empty\\-string on mixed\\.$#" count: 1 path: libraries/classes/Controllers/Database/Structure/FavoriteTableController.php diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 1fcdd687e6..2be64631a1 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1373,13 +1373,12 @@ <InvalidArrayOffset occurrences="1"> <code>$GLOBALS['cfg']['EnableAutocompleteForTablesAndColumns']</code> </InvalidArrayOffset> - <MixedArgument occurrences="3"> - <code>$GLOBALS['db']</code> - <code>$GLOBALS['db']</code> + <MixedArgument occurrences="2"> + <code>$db</code> <code>$tableName</code> </MixedArgument> <MixedAssignment occurrences="2"> - <code>$GLOBALS['db']</code> + <code>$db</code> <code>$tableName</code> </MixedAssignment> </file> |