From fc82232b15503861267eab45147295b85af18278 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Fri, 8 Dec 2023 19:07:36 +0100 Subject: [PATCH 1/5] Trim $GLOBALS['reload'] Signed-off-by: Kamil Tekiela --- phpstan-baseline.neon | 10 ------ psalm-baseline.xml | 22 ++----------- src/Controllers/Import/ImportController.php | 1 - .../Operations/DatabaseController.php | 1 - .../Operations/TableController.php | 1 - src/Controllers/Operations/ViewController.php | 1 - .../Server/Databases/DestroyController.php | 1 - .../Table/Structure/AddKeyController.php | 2 -- src/Import/Import.php | 23 ++++++------- tests/classes/Import/ImportTest.php | 32 ++++--------------- 10 files changed, 18 insertions(+), 76 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 4191f423dd..1bfd7b8bc4 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -11420,11 +11420,6 @@ parameters: count: 6 path: src/Import/Import.php - - - message: "#^Parameter \\#2 \\$db of method PhpMyAdmin\\\\Import\\\\Import\\:\\:lookForUse\\(\\) expects string\\|null, mixed given\\.$#" - count: 1 - path: src/Import/Import.php - - message: "#^Parameter \\#2 \\$start of function mb_substr expects int, mixed given\\.$#" count: 1 @@ -11440,11 +11435,6 @@ parameters: count: 1 path: src/Import/Import.php - - - message: "#^Parameter \\#3 \\$reload of method PhpMyAdmin\\\\Import\\\\Import\\:\\:lookForUse\\(\\) expects bool\\|null, mixed given\\.$#" - count: 1 - path: src/Import/Import.php - - message: "#^Parameter \\#3 \\$subject of function preg_replace expects array\\|string, mixed given\\.$#" count: 1 diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 33fdcd7eae..9dea1a0c45 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -2068,7 +2068,6 @@ - @@ -2132,7 +2131,6 @@ - @@ -2387,7 +2385,6 @@ - @@ -2395,7 +2392,6 @@ - @@ -2416,7 +2412,6 @@ - @@ -2430,7 +2425,6 @@ - @@ -2446,12 +2440,10 @@ - - $newname @@ -2701,7 +2693,6 @@ - @@ -2709,7 +2700,6 @@ - $database @@ -3920,12 +3910,6 @@ - - - - - - __construct @@ -6722,7 +6706,6 @@ - @@ -6733,7 +6716,6 @@ - $active $additionalSql[$i] $size @@ -6829,7 +6811,6 @@ - @@ -6903,6 +6884,9 @@ + + + diff --git a/src/Controllers/Import/ImportController.php b/src/Controllers/Import/ImportController.php index bedff96729..d1ae4b2471 100644 --- a/src/Controllers/Import/ImportController.php +++ b/src/Controllers/Import/ImportController.php @@ -96,7 +96,6 @@ final class ImportController extends AbstractController $GLOBALS['read_multiply'] ??= null; $GLOBALS['my_die'] ??= null; $GLOBALS['active_page'] ??= null; - $GLOBALS['reload'] ??= null; $GLOBALS['charset_of_file'] = $request->getParsedBodyParam('charset_of_file'); $GLOBALS['format'] = $request->getParsedBodyParam('format', ''); diff --git a/src/Controllers/Operations/DatabaseController.php b/src/Controllers/Operations/DatabaseController.php index ee7962a1aa..6b6ca0b0fc 100644 --- a/src/Controllers/Operations/DatabaseController.php +++ b/src/Controllers/Operations/DatabaseController.php @@ -52,7 +52,6 @@ class DatabaseController extends AbstractController $GLOBALS['server'] ??= null; $GLOBALS['message'] ??= null; $GLOBALS['errorUrl'] ??= null; - $GLOBALS['reload'] ??= null; $GLOBALS['urlParams'] ??= null; $GLOBALS['single_table'] ??= null; diff --git a/src/Controllers/Operations/TableController.php b/src/Controllers/Operations/TableController.php index bf98a92a7e..5f2185feba 100644 --- a/src/Controllers/Operations/TableController.php +++ b/src/Controllers/Operations/TableController.php @@ -57,7 +57,6 @@ class TableController extends AbstractController { $GLOBALS['urlParams'] ??= null; $GLOBALS['auto_increment'] ??= null; - $GLOBALS['reload'] ??= null; $GLOBALS['result'] ??= null; $GLOBALS['message_to_show'] ??= null; $GLOBALS['errorUrl'] ??= null; diff --git a/src/Controllers/Operations/ViewController.php b/src/Controllers/Operations/ViewController.php index 16ae248e99..b6d55b9af9 100644 --- a/src/Controllers/Operations/ViewController.php +++ b/src/Controllers/Operations/ViewController.php @@ -40,7 +40,6 @@ class ViewController extends AbstractController public function __invoke(ServerRequest $request): void { $GLOBALS['urlParams'] ??= null; - $GLOBALS['reload'] ??= null; $GLOBALS['result'] ??= null; $tableObject = $this->dbi->getTable($GLOBALS['db'], $GLOBALS['table']); diff --git a/src/Controllers/Server/Databases/DestroyController.php b/src/Controllers/Server/Databases/DestroyController.php index b8a949a684..4f91ac2a65 100644 --- a/src/Controllers/Server/Databases/DestroyController.php +++ b/src/Controllers/Server/Databases/DestroyController.php @@ -37,7 +37,6 @@ final class DestroyController extends AbstractController { $GLOBALS['selected'] ??= null; $GLOBALS['errorUrl'] ??= null; - $GLOBALS['reload'] ??= null; $selectedDbs = $request->getParsedBodyParam('selected_dbs'); diff --git a/src/Controllers/Table/Structure/AddKeyController.php b/src/Controllers/Table/Structure/AddKeyController.php index 80ce5d3840..da90f16443 100644 --- a/src/Controllers/Table/Structure/AddKeyController.php +++ b/src/Controllers/Table/Structure/AddKeyController.php @@ -24,8 +24,6 @@ final class AddKeyController extends AbstractController public function __invoke(ServerRequest $request): void { - $GLOBALS['reload'] ??= null; - ($this->sqlController)($request); $GLOBALS['reload'] = true; diff --git a/src/Import/Import.php b/src/Import/Import.php index 41aa9d6110..ec51dd24b0 100644 --- a/src/Import/Import.php +++ b/src/Import/Import.php @@ -129,7 +129,6 @@ class Import { $GLOBALS['my_die'] ??= null; $GLOBALS['error'] ??= null; - $GLOBALS['reload'] ??= null; $GLOBALS['msg'] ??= null; $GLOBALS['sql_query_disabled'] ??= null; $dbi = DatabaseInterface::getInstance(); @@ -178,7 +177,11 @@ class Import // If a 'USE ' SQL-clause was found and the query // succeeded, set our current $db to the new one if ($GLOBALS['result'] != false) { - [$GLOBALS['db'], $GLOBALS['reload']] = $this->lookForUse($sql, $GLOBALS['db'], $GLOBALS['reload']); + $dbNameInsideUse = $this->lookForUse($sql); + if ($dbNameInsideUse !== '') { + $GLOBALS['db'] = $dbNameInsideUse; + $GLOBALS['reload'] = true; + } } $pattern = '@^[\s]*(DROP|CREATE)[\s]+(IF EXISTS[[:space:]]+)?(TABLE|DATABASE)[[:space:]]+(.+)@im'; @@ -290,28 +293,20 @@ class Import /** * Looks for the presence of USE to possibly change current db - * - * @param string|null $buffer buffer to examine - * @param string|null $db current db - * @param bool|null $reload reload - * - * @return mixed[] (current or new db, whether to reload) */ - public function lookForUse(string|null $buffer, string|null $db, bool|null $reload): array + public function lookForUse(string $buffer): string { - if (preg_match('@^[\s]*USE[[:space:]]+([\S]+)@i', (string) $buffer, $match)) { + if (preg_match('@^[\s]*USE[[:space:]]+([\S]+)@i', $buffer, $match)) { $db = trim($match[1]); $db = trim($db, ';'); // for example, USE abc; // $db must not contain the escape characters generated by backquote() // ( used in buildSql() as: backquote($db_name), and then called // in runQuery() which in turn calls lookForUse() ) - $db = Util::unQuote($db); - - $reload = true; + return Util::unQuote($db); } - return [$db, $reload]; + return ''; } /** diff --git a/tests/classes/Import/ImportTest.php b/tests/classes/Import/ImportTest.php index 10e9f68c10..756410592f 100644 --- a/tests/classes/Import/ImportTest.php +++ b/tests/classes/Import/ImportTest.php @@ -86,38 +86,18 @@ class ImportTest extends AbstractTestCase public function testLookForUse(): void { $this->assertEquals( - [null, null], - $this->import->lookForUse(null, null, null), + '', + $this->import->lookForUse('select 1 from myTable'), ); $this->assertEquals( - ['myDb', null], - $this->import->lookForUse(null, 'myDb', null), + 'anotherDb', + $this->import->lookForUse('use anotherDb'), ); $this->assertEquals( - ['myDb', true], - $this->import->lookForUse(null, 'myDb', true), - ); - - $this->assertEquals( - ['myDb', true], - $this->import->lookForUse('select 1 from myTable', 'myDb', true), - ); - - $this->assertEquals( - ['anotherDb', true], - $this->import->lookForUse('use anotherDb', 'myDb', false), - ); - - $this->assertEquals( - ['anotherDb', true], - $this->import->lookForUse('use anotherDb', 'myDb', true), - ); - - $this->assertEquals( - ['anotherDb', true], - $this->import->lookForUse('use `anotherDb`;', 'myDb', true), + 'anotherDb', + $this->import->lookForUse('use `anotherDb`;'), ); } From 4f2b92a2af6bbc05152c047330eb5474709ea141 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Fri, 8 Dec 2023 19:12:18 +0100 Subject: [PATCH 2/5] Trim $GLOBALS['my_die'] Signed-off-by: Kamil Tekiela --- psalm-baseline.xml | 1 - src/Controllers/Import/ImportController.php | 1 - src/Import/Import.php | 6 +----- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 9dea1a0c45..d7837737b2 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -2128,7 +2128,6 @@ - diff --git a/src/Controllers/Import/ImportController.php b/src/Controllers/Import/ImportController.php index d1ae4b2471..92075ddc2b 100644 --- a/src/Controllers/Import/ImportController.php +++ b/src/Controllers/Import/ImportController.php @@ -94,7 +94,6 @@ final class ImportController extends AbstractController $GLOBALS['import_file_name'] ??= null; $GLOBALS['import_notice'] ??= null; $GLOBALS['read_multiply'] ??= null; - $GLOBALS['my_die'] ??= null; $GLOBALS['active_page'] ??= null; $GLOBALS['charset_of_file'] = $request->getParsedBodyParam('charset_of_file'); diff --git a/src/Import/Import.php b/src/Import/Import.php index ec51dd24b0..f57d4bf9eb 100644 --- a/src/Import/Import.php +++ b/src/Import/Import.php @@ -127,7 +127,6 @@ class Import */ public function executeQuery(string $sql, array &$sqlData): void { - $GLOBALS['my_die'] ??= null; $GLOBALS['error'] ??= null; $GLOBALS['msg'] ??= null; $GLOBALS['sql_query_disabled'] ??= null; @@ -140,10 +139,7 @@ class Import $GLOBALS['msg'] = '# '; if ($GLOBALS['result'] === false) { // execution failed - if (! isset($GLOBALS['my_die'])) { - $GLOBALS['my_die'] = []; - } - + $GLOBALS['my_die'] ??= []; $GLOBALS['my_die'][] = ['sql' => $sql, 'error' => $dbi->getError()]; $GLOBALS['msg'] .= __('Error'); From 8fd3e7568ae8c497261451bcf96f9fc0df0b7792 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Fri, 8 Dec 2023 19:20:00 +0100 Subject: [PATCH 3/5] $GLOBALS['result'] Signed-off-by: Kamil Tekiela --- phpstan-baseline.neon | 2 +- psalm-baseline.xml | 8 -------- .../Operations/TableController.php | 20 ++++++++++--------- src/Controllers/Operations/ViewController.php | 14 ++++++------- src/Controllers/Table/AddFieldController.php | 5 ++--- src/Controllers/Table/ChangeController.php | 10 ++++------ 6 files changed, 24 insertions(+), 35 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 1bfd7b8bc4..d0832ad631 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -5651,7 +5651,7 @@ parameters: path: src/Controllers/Table/ChangeController.php - - message: "#^Parameter \\#4 \\$currentResult of method PhpMyAdmin\\\\InsertEdit\\:\\:getHtmlForInsertEditRow\\(\\) expects PhpMyAdmin\\\\Dbal\\\\ResultInterface, mixed given\\.$#" + message: "#^Parameter \\#4 \\$currentResult of method PhpMyAdmin\\\\InsertEdit\\:\\:getHtmlForInsertEditRow\\(\\) expects PhpMyAdmin\\\\Dbal\\\\ResultInterface, array\\\\|PhpMyAdmin\\\\Dbal\\\\ResultInterface given\\.$#" count: 1 path: src/Controllers/Table/ChangeController.php diff --git a/psalm-baseline.xml b/psalm-baseline.xml index d7837737b2..a07692b5a1 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -2411,7 +2411,6 @@ - $tableAlters @@ -2424,7 +2423,6 @@ - $rereadInfo @@ -2439,11 +2437,9 @@ - - $newname @@ -3271,7 +3267,6 @@ - @@ -3282,7 +3277,6 @@ - @@ -3313,7 +3307,6 @@ - @@ -3336,7 +3329,6 @@ - $isUpload diff --git a/src/Controllers/Operations/TableController.php b/src/Controllers/Operations/TableController.php index 5f2185feba..cd44115a24 100644 --- a/src/Controllers/Operations/TableController.php +++ b/src/Controllers/Operations/TableController.php @@ -57,7 +57,6 @@ class TableController extends AbstractController { $GLOBALS['urlParams'] ??= null; $GLOBALS['auto_increment'] ??= null; - $GLOBALS['result'] ??= null; $GLOBALS['message_to_show'] ??= null; $GLOBALS['errorUrl'] ??= null; @@ -212,13 +211,13 @@ class TableController extends AbstractController $GLOBALS['db'] = $oldDb; $this->dbi->selectDb($oldDb); $newMessage .= $pmaTable->getLastMessage(); - $GLOBALS['result'] = true; + $result = true; $GLOBALS['table'] = $pmaTable->getName(); $rereadInfo = true; $GLOBALS['reload'] = true; } else { $newMessage .= $pmaTable->getLastError(); - $GLOBALS['result'] = false; + $result = false; } } @@ -257,7 +256,8 @@ class TableController extends AbstractController . Util::backquote($GLOBALS['table']); $GLOBALS['sql_query'] .= "\r\n" . implode("\r\n", $tableAlters); $GLOBALS['sql_query'] .= ';'; - $GLOBALS['result'] = (bool) $this->dbi->query($GLOBALS['sql_query']); + $this->dbi->query($GLOBALS['sql_query']); + $result = true; $rereadInfo = true; $warningMessages = $this->operations->getWarningMessagesArray(); } @@ -298,7 +298,8 @@ class TableController extends AbstractController urldecode($orderField), is_string($orderOrder) ? $orderOrder : '', ); - $GLOBALS['result'] = $this->dbi->query($GLOBALS['sql_query']); + $this->dbi->query($GLOBALS['sql_query']); + $result = true; } /** @var mixed $partitionOperation */ @@ -317,7 +318,8 @@ class TableController extends AbstractController $partitionOperation, is_array($partitionNames) ? $partitionNames : [], ); - $GLOBALS['result'] = $this->dbi->query($GLOBALS['sql_query']); + $this->dbi->query($GLOBALS['sql_query']); + $result = true; } if ($rereadInfo) { @@ -341,12 +343,12 @@ class TableController extends AbstractController $createOptions = $pmaTable->getCreateOptions(); } - if (isset($GLOBALS['result']) && empty($GLOBALS['message_to_show'])) { + if (isset($result) && empty($GLOBALS['message_to_show'])) { if ($newMessage === '') { if (empty($GLOBALS['sql_query'])) { $newMessage = Message::success(__('No change')); } else { - $newMessage = $GLOBALS['result'] + $newMessage = $result ? Message::success() : Message::error(); } @@ -364,7 +366,7 @@ class TableController extends AbstractController return; } } else { - $newMessage = $GLOBALS['result'] + $newMessage = $result ? Message::success($newMessage) : Message::error($newMessage); } diff --git a/src/Controllers/Operations/ViewController.php b/src/Controllers/Operations/ViewController.php index b6d55b9af9..a3cf4a4978 100644 --- a/src/Controllers/Operations/ViewController.php +++ b/src/Controllers/Operations/ViewController.php @@ -40,7 +40,6 @@ class ViewController extends AbstractController public function __invoke(ServerRequest $request): void { $GLOBALS['urlParams'] ??= null; - $GLOBALS['result'] ??= null; $tableObject = $this->dbi->getTable($GLOBALS['db'], $GLOBALS['table']); $GLOBALS['errorUrl'] ??= null; @@ -95,24 +94,24 @@ class ViewController extends AbstractController if ($request->hasBodyParam('submitoptions')) { if (is_string($newname) && $tableObject->rename($newname)) { $message->addText($tableObject->getLastMessage()); - $GLOBALS['result'] = true; + $result = true; $GLOBALS['table'] = $tableObject->getName(); /* Force reread after rename */ $tableObject->getStatusInfo(null, true); $GLOBALS['reload'] = true; } else { - $message->addText($tableObject->getLastError()); - $GLOBALS['result'] = false; + $message->addText($tableObject->getLastError()); + $result = false; } $warningMessages = $this->operations->getWarningMessagesArray(); } - if (isset($GLOBALS['result'])) { + if (isset($result)) { // set to success by default, because result set could be empty // (for example, a table rename) if ($message->getString() === '') { - if ($GLOBALS['result']) { + if ($result) { $message->addText( __('Your SQL query has been executed successfully.'), ); @@ -120,8 +119,7 @@ class ViewController extends AbstractController $message->addText(__('Error')); } - // $result should exist, regardless of $_message - $type = $GLOBALS['result'] ? 'success' : 'error'; + $type = $result ? 'success' : 'error'; } if ($warningMessages !== []) { diff --git a/src/Controllers/Table/AddFieldController.php b/src/Controllers/Table/AddFieldController.php index d1f3d8693d..d0b1d979f2 100644 --- a/src/Controllers/Table/AddFieldController.php +++ b/src/Controllers/Table/AddFieldController.php @@ -50,7 +50,6 @@ class AddFieldController extends AbstractController $GLOBALS['errorUrl'] ??= null; $GLOBALS['message'] ??= null; $GLOBALS['active_page'] ??= null; - $GLOBALS['result'] ??= null; /** @var string|null $numberOfFields */ $numberOfFields = $request->getParsedBodyParam('num_fields'); @@ -91,13 +90,13 @@ class AddFieldController extends AbstractController return; } - $GLOBALS['result'] = $createAddField->tryColumnCreationQuery( + $result = $createAddField->tryColumnCreationQuery( DatabaseName::from($GLOBALS['db']), $GLOBALS['sql_query'], $GLOBALS['errorUrl'], ); - if (! $GLOBALS['result']) { + if (! $result) { $errorMessageHtml = Generator::mysqlDie('', '', false, $GLOBALS['errorUrl'], false); $this->response->addHTML($errorMessageHtml ?? ''); $this->response->setRequestStatus(false); diff --git a/src/Controllers/Table/ChangeController.php b/src/Controllers/Table/ChangeController.php index f1c736f8e8..abe9293a02 100644 --- a/src/Controllers/Table/ChangeController.php +++ b/src/Controllers/Table/ChangeController.php @@ -56,7 +56,6 @@ class ChangeController extends AbstractController $GLOBALS['errorUrl'] ??= null; $GLOBALS['where_clause'] ??= null; $GLOBALS['unsaved_values'] ??= null; - $GLOBALS['result'] ??= null; $GLOBALS['current_result'] ??= null; $this->pageSettings->init('Edit'); @@ -108,7 +107,7 @@ class ChangeController extends AbstractController $GLOBALS['where_clause'], $whereClauseArray, $whereClauses, - $GLOBALS['result'], + $result, $rows, $foundUniqueIndex, $afterInsert, @@ -231,10 +230,9 @@ class ChangeController extends AbstractController $GLOBALS['plugin_scripts'] = []; foreach ($rows as $rowId => $currentRow) { - $GLOBALS['current_result'] = (isset($GLOBALS['result']) - && is_array($GLOBALS['result']) && isset($GLOBALS['result'][$rowId]) - ? $GLOBALS['result'][$rowId] - : $GLOBALS['result']); + $GLOBALS['current_result'] = is_array($result) && isset($result[$rowId]) + ? $result[$rowId] + : $result; $repopulate = []; $checked = true; if (isset($GLOBALS['unsaved_values'][$rowId])) { From 51f4220fecc42848864ab5cc0315defdaae460e3 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Fri, 8 Dec 2023 19:46:52 +0100 Subject: [PATCH 4/5] $GLOBALS['num_cols'] Signed-off-by: Kamil Tekiela --- psalm-baseline.xml | 4 ---- src/Controllers/Database/CentralColumnsController.php | 5 ++--- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/psalm-baseline.xml b/psalm-baseline.xml index a07692b5a1..dd0302dc1d 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -901,9 +901,6 @@ Config::getInstance() - - - $columnDefault $columnDefault @@ -932,7 +929,6 @@ - $columnDefault $columnDefault diff --git a/src/Controllers/Database/CentralColumnsController.php b/src/Controllers/Database/CentralColumnsController.php index d627d191fc..a71d86b4d2 100644 --- a/src/Controllers/Database/CentralColumnsController.php +++ b/src/Controllers/Database/CentralColumnsController.php @@ -35,7 +35,6 @@ class CentralColumnsController extends AbstractController public function __invoke(ServerRequest $request): void { $GLOBALS['message'] ??= null; - $GLOBALS['num_cols'] ??= null; if ($request->hasBodyParam('edit_save')) { $this->response->addHTML((string) $this->editSave([ @@ -135,13 +134,13 @@ class CentralColumnsController extends AbstractController $pos = (int) $request->getParsedBodyParam('pos'); } - $GLOBALS['num_cols'] = $this->centralColumns->getColumnsCount( + $numberOfColumns = $this->centralColumns->getColumnsCount( $GLOBALS['db'], $pos, Config::getInstance()->settings['MaxRows'], ); $GLOBALS['message'] = Message::success( - sprintf(__('Showing rows %1$s - %2$s.'), $pos + 1, $pos + $GLOBALS['num_cols']), + sprintf(__('Showing rows %1$s - %2$s.'), $pos + 1, $pos + $numberOfColumns), ); if (! isset($tmpMsg) || $tmpMsg === true) { return; From 0aac6003df013cf6d6b171135cd1a6ff3dcd9051 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Fri, 8 Dec 2023 20:02:33 +0100 Subject: [PATCH 5/5] $GLOBALS['replaces'] Signed-off-by: Kamil Tekiela --- phpstan-baseline.neon | 10 ---------- psalm-baseline.xml | 7 ------- src/Controllers/Table/ExportController.php | 12 ++++-------- 3 files changed, 4 insertions(+), 25 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index d0832ad631..4040134083 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -5955,11 +5955,6 @@ parameters: count: 1 path: src/Controllers/Table/DropColumnController.php - - - message: "#^Cannot access an offset on mixed\\.$#" - count: 2 - path: src/Controllers/Table/ExportController.php - - message: "#^Cannot access offset 'back' on mixed\\.$#" count: 1 @@ -5995,11 +5990,6 @@ parameters: count: 1 path: src/Controllers/Table/ExportController.php - - - message: "#^Parameter \\#3 \\$ops of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Query\\:\\:replaceClauses\\(\\) expects array\\\\>, mixed given\\.$#" - count: 1 - path: src/Controllers/Table/ExportController.php - - message: "#^Parameter \\#3 \\$table of method PhpMyAdmin\\\\Export\\\\Options\\:\\:getOptions\\(\\) expects string, mixed given\\.$#" count: 1 diff --git a/psalm-baseline.xml b/psalm-baseline.xml index dd0302dc1d..f9d6f9da91 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -3478,26 +3478,19 @@ - - - - - - - diff --git a/src/Controllers/Table/ExportController.php b/src/Controllers/Table/ExportController.php index 812159c81d..e6235548c7 100644 --- a/src/Controllers/Table/ExportController.php +++ b/src/Controllers/Table/ExportController.php @@ -38,7 +38,6 @@ class ExportController extends AbstractController public function __invoke(ServerRequest $request): void { $GLOBALS['urlParams'] ??= null; - $GLOBALS['replaces'] ??= null; $GLOBALS['errorUrl'] ??= null; $GLOBALS['where_clause'] ??= null; $GLOBALS['unlim_num_rows'] ??= null; @@ -71,19 +70,16 @@ class ExportController extends AbstractController if (! empty($parser->statements[0]) && ($parser->statements[0] instanceof SelectStatement)) { // Checking if the WHERE clause has to be replaced. + $replaces = []; if (! empty($GLOBALS['where_clause']) && is_array($GLOBALS['where_clause'])) { - $GLOBALS['replaces'][] = ['WHERE', 'WHERE (' . implode(') OR (', $GLOBALS['where_clause']) . ')']; + $replaces[] = ['WHERE', 'WHERE (' . implode(') OR (', $GLOBALS['where_clause']) . ')']; } // Preparing to remove the LIMIT clause. - $GLOBALS['replaces'][] = ['LIMIT', '']; + $replaces[] = ['LIMIT', '']; // Replacing the clauses. - $GLOBALS['sql_query'] = Query::replaceClauses( - $parser->statements[0], - $parser->list, - $GLOBALS['replaces'], - ); + $GLOBALS['sql_query'] = Query::replaceClauses($parser->statements[0], $parser->list, $replaces); } }