diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon
index cae9dfcb54..3cd706fdc2 100644
--- a/phpstan-baseline.neon
+++ b/phpstan-baseline.neon
@@ -3898,13 +3898,7 @@ parameters:
path: src/Controllers/Sql/SqlController.php
-
- message: '#^Parameter \#10 \$dispMessage of method PhpMyAdmin\\Sql\:\:executeQueryAndSendQueryResponse\(\) expects PhpMyAdmin\\Message\|string\|null, mixed given\.$#'
- identifier: argument.type
- count: 1
- path: src/Controllers/Sql/SqlController.php
-
- -
- message: '#^Parameter \#12 \$completeQuery of method PhpMyAdmin\\Sql\:\:executeQueryAndSendQueryResponse\(\) expects string\|null, mixed given\.$#'
+ message: '#^Parameter \#11 \$completeQuery of method PhpMyAdmin\\Sql\:\:executeQueryAndSendQueryResponse\(\) expects string, mixed given\.$#'
identifier: argument.type
count: 1
path: src/Controllers/Sql/SqlController.php
@@ -3916,19 +3910,25 @@ parameters:
path: src/Controllers/Sql/SqlController.php
-
- message: '#^Parameter \#5 \$sqlQueryForBookmark of method PhpMyAdmin\\Sql\:\:executeQueryAndSendQueryResponse\(\) expects string\|null, mixed given\.$#'
+ message: '#^Parameter \#5 \$sqlQueryForBookmark of method PhpMyAdmin\\Sql\:\:executeQueryAndSendQueryResponse\(\) expects string, mixed given\.$#'
identifier: argument.type
count: 1
path: src/Controllers/Sql/SqlController.php
-
- message: '#^Parameter \#6 \$messageToShow of method PhpMyAdmin\\Sql\:\:executeQueryAndSendQueryResponse\(\) expects string\|null, mixed given\.$#'
+ message: '#^Parameter \#6 \$messageToShow of method PhpMyAdmin\\Sql\:\:executeQueryAndSendQueryResponse\(\) expects string, mixed given\.$#'
identifier: argument.type
count: 1
path: src/Controllers/Sql/SqlController.php
-
- message: '#^Parameter \#9 \$dispQuery of method PhpMyAdmin\\Sql\:\:executeQueryAndSendQueryResponse\(\) expects string\|null, mixed given\.$#'
+ message: '#^Parameter \#8 \$dispQuery of method PhpMyAdmin\\Sql\:\:executeQueryAndSendQueryResponse\(\) expects string\|null, mixed given\.$#'
+ identifier: argument.type
+ count: 1
+ path: src/Controllers/Sql/SqlController.php
+
+ -
+ message: '#^Parameter \#9 \$dispMessage of method PhpMyAdmin\\Sql\:\:executeQueryAndSendQueryResponse\(\) expects PhpMyAdmin\\Message\|string, mixed given\.$#'
identifier: argument.type
count: 1
path: src/Controllers/Sql/SqlController.php
@@ -4185,12 +4185,6 @@ parameters:
count: 1
path: src/Controllers/Table/DeleteRowsController.php
- -
- message: '#^Parameter \#10 \$dispMessage of method PhpMyAdmin\\Sql\:\:executeQueryAndSendQueryResponse\(\) expects PhpMyAdmin\\Message\|string\|null, mixed given\.$#'
- identifier: argument.type
- count: 1
- path: src/Controllers/Table/DeleteRowsController.php
-
-
message: '#^Parameter \#3 \$pos of method PhpMyAdmin\\Sql\:\:calculatePosForLastPage\(\) expects int\|null, mixed given\.$#'
identifier: argument.type
@@ -4204,7 +4198,13 @@ parameters:
path: src/Controllers/Table/DeleteRowsController.php
-
- message: '#^Parameter \#9 \$dispQuery of method PhpMyAdmin\\Sql\:\:executeQueryAndSendQueryResponse\(\) expects string\|null, mixed given\.$#'
+ message: '#^Parameter \#8 \$dispQuery of method PhpMyAdmin\\Sql\:\:executeQueryAndSendQueryResponse\(\) expects string\|null, mixed given\.$#'
+ identifier: argument.type
+ count: 1
+ path: src/Controllers/Table/DeleteRowsController.php
+
+ -
+ message: '#^Parameter \#9 \$dispMessage of method PhpMyAdmin\\Sql\:\:executeQueryAndSendQueryResponse\(\) expects PhpMyAdmin\\Message\|string, mixed given\.$#'
identifier: argument.type
count: 1
path: src/Controllers/Table/DeleteRowsController.php
@@ -15915,19 +15915,13 @@ parameters:
-
message: '#^Only booleans are allowed in &&, string given on the right side\.$#'
identifier: booleanAnd.rightNotBoolean
- count: 2
- path: src/Sql.php
-
- -
- message: '#^Only booleans are allowed in &&, string\|null given on the left side\.$#'
- identifier: booleanAnd.leftNotBoolean
- count: 1
+ count: 3
path: src/Sql.php
-
message: '#^Only booleans are allowed in &&, string\|null given on the right side\.$#'
identifier: booleanAnd.rightNotBoolean
- count: 2
+ count: 1
path: src/Sql.php
-
@@ -15991,13 +15985,7 @@ parameters:
path: src/Sql.php
-
- message: '#^Parameter \#2 \$table of method PhpMyAdmin\\Sql\:\:handleSortOrder\(\) expects string, string\|null given\.$#'
- identifier: argument.type
- count: 1
- path: src/Sql.php
-
- -
- message: '#^Parameter \#3 \$column of method PhpMyAdmin\\Sql\:\:cleanupRelations\(\) expects string\|null, mixed given\.$#'
+ message: '#^Parameter \#3 \$column of method PhpMyAdmin\\Sql\:\:cleanupRelations\(\) expects string, mixed given\.$#'
identifier: argument.type
count: 1
path: src/Sql.php
@@ -16009,7 +15997,7 @@ parameters:
path: src/Sql.php
-
- message: '#^Parameter \#5 \$bookmarkLabel of method PhpMyAdmin\\Sql\:\:storeTheQueryAsBookmark\(\) expects string, mixed given\.$#'
+ message: '#^Parameter \#4 \$bookmarkLabel of method PhpMyAdmin\\Sql\:\:storeTheQueryAsBookmark\(\) expects string, mixed given\.$#'
identifier: argument.type
count: 1
path: src/Sql.php
diff --git a/psalm-baseline.xml b/psalm-baseline.xml
index 9a7aaca991..6e2cd505f1 100644
--- a/psalm-baseline.xml
+++ b/psalm-baseline.xml
@@ -2373,8 +2373,8 @@
-
-
+
+
getQueryParam('sql_signature')]]>
@@ -2568,7 +2568,7 @@
-
+
@@ -9341,7 +9341,7 @@
-
+
@@ -9349,6 +9349,7 @@
+
@@ -9362,7 +9363,6 @@
parser->list]]>
parser->list]]>
parser->list]]>
-
@@ -9375,8 +9375,6 @@
isUnique()]]>
-
-
diff --git a/src/Config/Form.php b/src/Config/Form.php
index f306d4fd27..f22fd3db29 100644
--- a/src/Config/Form.php
+++ b/src/Config/Form.php
@@ -84,9 +84,9 @@ class Form
*
* @param string $optionName path or field name
*
- * @return string|null one of: boolean, integer, double, string, select, array
+ * @return string one of: boolean, integer, double, string, select, array
*/
- public function getOptionType(string $optionName): string|null
+ public function getOptionType(string $optionName): string
{
$key = ltrim(
mb_substr(
@@ -96,7 +96,7 @@ class Form
'/',
);
- return $this->fieldsTypes[$key] ?? null;
+ return $this->fieldsTypes[$key] ?? '';
}
/**
diff --git a/src/Config/FormDisplay.php b/src/Config/FormDisplay.php
index 874b2aecb8..326a695857 100644
--- a/src/Config/FormDisplay.php
+++ b/src/Config/FormDisplay.php
@@ -204,17 +204,17 @@ class FormDisplay
/**
* Outputs HTML for forms
*
- * @param bool $showButtons whether show submit and reset button
- * @param string|null $formAction action attribute for the form
- * @param mixed[]|null $hiddenFields array of form hidden fields (key: field
+ * @param bool $showButtons whether show submit and reset button
+ * @param string $formAction action attribute for the form
+ * @param mixed[] $hiddenFields array of form hidden fields (key: field
* name)
*
* @return string HTML for forms
*/
public function getDisplay(
bool $showButtons = true,
- string|null $formAction = null,
- array|null $hiddenFields = null,
+ string $formAction = '',
+ array $hiddenFields = [],
): string {
$fieldValidators = [];
$defaultValues = [];
@@ -293,7 +293,7 @@ class FormDisplay
return $this->formDisplayTemplate->display([
'action' => $formAction,
'has_check_page_refresh' => self::$hasCheckPageRefresh,
- 'hidden_fields' => (array) $hiddenFields,
+ 'hidden_fields' => $hiddenFields,
'tabs' => $tabs,
'forms' => $forms,
'show_buttons' => $showButtons,
@@ -566,7 +566,7 @@ class FormDisplay
foreach ($form->fields as $field => $systemPath) {
$workPath = array_search($systemPath, $this->systemPaths);
$key = $this->translatedPaths[$workPath];
- $type = (string) $form->getOptionType($field);
+ $type = $form->getOptionType($field);
// skip groups
if ($type === 'group') {
diff --git a/src/ConfigStorage/Relation.php b/src/ConfigStorage/Relation.php
index 1b4898e535..c7200ac646 100644
--- a/src/ConfigStorage/Relation.php
+++ b/src/ConfigStorage/Relation.php
@@ -1235,10 +1235,10 @@ class Relation
/**
* Create a PDF page
*
- * @param string|null $newpage name of the new PDF page
- * @param string $db database name
+ * @param string $newpage name of the new PDF page
+ * @param string $db database name
*/
- public function createPage(string|null $newpage, PdfFeature $pdfFeature, string $db): int
+ public function createPage(string $newpage, PdfFeature $pdfFeature, string $db): int
{
$insQuery = 'INSERT INTO '
. Util::backquote($pdfFeature->database) . '.'
@@ -1247,7 +1247,7 @@ class Relation
. ' VALUES ('
. $this->dbi->quoteString($db, ConnectionType::ControlUser) . ', '
. $this->dbi->quoteString(
- $newpage !== null && $newpage !== '' ? $newpage : __('no description'),
+ $newpage !== '' ? $newpage : __('no description'),
ConnectionType::ControlUser,
) . ')';
$this->dbi->tryQueryAsControlUser($insQuery);
diff --git a/src/Controllers/Database/CentralColumnsController.php b/src/Controllers/Database/CentralColumnsController.php
index a0b5325238..98d59a9146 100644
--- a/src/Controllers/Database/CentralColumnsController.php
+++ b/src/Controllers/Database/CentralColumnsController.php
@@ -42,7 +42,7 @@ final class CentralColumnsController implements InvocableController
$request->getParsedBodyParamAsString('orig_col_name'),
$request->getParsedBodyParamAsString('col_default'),
$request->getParsedBodyParamAsString('col_default_sel'),
- $request->getParsedBodyParamAsStringOrNull('col_extra'),
+ $request->getParsedBodyParamAsString('col_extra', ''),
$request->getParsedBodyParamAsStringOrNull('col_isNull'),
$request->getParsedBodyParamAsString('col_length'),
$request->getParsedBodyParamAsString('col_attribute'),
@@ -60,7 +60,7 @@ final class CentralColumnsController implements InvocableController
$request->getParsedBodyParamAsString('col_name'),
$request->getParsedBodyParamAsString('col_default'),
$request->getParsedBodyParamAsString('col_default_sel'),
- $request->getParsedBodyParamAsStringOrNull('col_extra'),
+ $request->getParsedBodyParamAsString('col_extra', ''),
$request->getParsedBodyParamAsStringOrNull('col_isNull'),
$request->getParsedBodyParamAsString('col_length'),
$request->getParsedBodyParamAsString('col_attribute'),
@@ -176,7 +176,7 @@ final class CentralColumnsController implements InvocableController
string $origColName,
string $colDefault,
string $colDefaultSel,
- string|null $colExtra,
+ string $colExtra,
string|null $colIsNull,
string $colLength,
string $colAttribute,
@@ -198,7 +198,7 @@ final class CentralColumnsController implements InvocableController
$colLength,
$colIsNull !== null,
$collation,
- $colExtra ?? '',
+ $colExtra,
$columnDefault,
);
}
@@ -207,7 +207,7 @@ final class CentralColumnsController implements InvocableController
string $colName,
string $colDefault,
string $colDefaultSel,
- string|null $colExtra,
+ string $colExtra,
string|null $colIsNull,
string $colLength,
string $colAttribute,
@@ -224,7 +224,7 @@ final class CentralColumnsController implements InvocableController
$colLength,
$colIsNull !== null,
$collation,
- $colExtra ?? '',
+ $colExtra,
$colDefault === 'NONE' && $colDefaultSel !== 'USER_DEFINED' ? '' : $colDefault,
);
}
diff --git a/src/Controllers/Import/ImportController.php b/src/Controllers/Import/ImportController.php
index 9252972603..6a38fe9441 100644
--- a/src/Controllers/Import/ImportController.php
+++ b/src/Controllers/Import/ImportController.php
@@ -649,14 +649,13 @@ final class ImportController implements InvocableController
false, // is_gotofile
Current::$database, // db
Current::$table, // table
- null, // sql_query_for_bookmark - see below
- null, // message_to_show
- null, // sql_data
+ '', // sql_query_for_bookmark - see below
+ '', // message_to_show
UrlParams::$goto, // goto
null, // disp_query
- null, // disp_message
+ '', // disp_message
Current::$sqlQuery,
- null, // complete_query
+ Current::$sqlQuery, // complete_query
);
}
@@ -664,10 +663,7 @@ final class ImportController implements InvocableController
// since only one bookmark has to be added for all the queries submitted through
// the SQL tab
if (! empty($request->getParsedBodyParam('bkm_label')) && ! empty($GLOBALS['import_text'])) {
- $relation = new Relation($this->dbi);
-
$this->sql->storeTheQueryAsBookmark(
- $relation->getRelationParameters()->bookmarkFeature,
Current::$database,
$config->selectedServer['user'],
$request->getParsedBodyParamAsString('sql_query'),
@@ -695,7 +691,6 @@ final class ImportController implements InvocableController
$relation = new Relation($this->dbi);
$this->sql->storeTheQueryAsBookmark(
- $relation->getRelationParameters()->bookmarkFeature,
Current::$database,
$config->selectedServer['user'],
$request->getParsedBodyParamAsString('sql_query'),
diff --git a/src/Controllers/Sql/SqlController.php b/src/Controllers/Sql/SqlController.php
index d2a576102b..3806b6bcb6 100644
--- a/src/Controllers/Sql/SqlController.php
+++ b/src/Controllers/Sql/SqlController.php
@@ -191,14 +191,13 @@ class SqlController implements InvocableController
$isGotofile,
Current::$database,
Current::$table,
- $GLOBALS['import_text'] ?? null,
- $GLOBALS['message_to_show'] ?? null,
- null,
+ $GLOBALS['import_text'] ?? '',
+ $GLOBALS['message_to_show'] ?? '',
UrlParams::$goto,
isset($GLOBALS['disp_query']) ? $GLOBALS['display_query'] : null,
- $GLOBALS['disp_message'] ?? null,
+ $GLOBALS['disp_message'] ?? '',
Current::$sqlQuery,
- $GLOBALS['complete_query'] ?? null,
+ $GLOBALS['complete_query'] ?? Current::$sqlQuery,
));
return $this->response->response();
diff --git a/src/Controllers/Table/DeleteRowsController.php b/src/Controllers/Table/DeleteRowsController.php
index 2c19c118ec..fb9fd9c064 100644
--- a/src/Controllers/Table/DeleteRowsController.php
+++ b/src/Controllers/Table/DeleteRowsController.php
@@ -87,14 +87,13 @@ final class DeleteRowsController implements InvocableController
false,
Current::$database,
Current::$table,
- null,
- null,
- null,
+ '',
+ '',
UrlParams::$goto,
$GLOBALS['disp_query'] ?? null,
- $GLOBALS['disp_message'] ?? null,
+ $GLOBALS['disp_message'] ?? '',
+ Current::$sqlQuery,
Current::$sqlQuery,
- null,
));
return $this->response->response();
diff --git a/src/Controllers/Table/SearchController.php b/src/Controllers/Table/SearchController.php
index 29363913ef..0e29162129 100644
--- a/src/Controllers/Table/SearchController.php
+++ b/src/Controllers/Table/SearchController.php
@@ -250,14 +250,13 @@ final class SearchController implements InvocableController
false, // is_gotofile
Current::$database, // db
Current::$table, // table
- null, // sql_query_for_bookmark
- null, // message_to_show
- null, // sql_data
+ '', // sql_query_for_bookmark
+ '', // message_to_show
UrlParams::$goto, // goto
null, // disp_query
- null, // disp_message
+ '', // disp_message
$sqlQuery, // sql_query
- null, // complete_query
+ $sqlQuery, // complete_query
));
}
diff --git a/src/Controllers/Table/Structure/BrowseController.php b/src/Controllers/Table/Structure/BrowseController.php
index e117b8a63d..252fe37133 100644
--- a/src/Controllers/Table/Structure/BrowseController.php
+++ b/src/Controllers/Table/Structure/BrowseController.php
@@ -66,14 +66,13 @@ final class BrowseController implements InvocableController
false, // is_gotofile
Current::$database, // db
Current::$table, // table
- null, // sql_query_for_bookmark
- null, // message_to_show
- null, // sql_data
+ '', // sql_query_for_bookmark
+ '', // message_to_show
$goto, // goto
null, // disp_query
- null, // disp_message
+ '', // disp_message
$sqlQuery, // sql_query
- null, // complete_query
+ $sqlQuery, // complete_query
),
);
}
diff --git a/src/Database/MultiTableQuery.php b/src/Database/MultiTableQuery.php
index 727c5f88f1..88a2e53024 100644
--- a/src/Database/MultiTableQuery.php
+++ b/src/Database/MultiTableQuery.php
@@ -91,14 +91,13 @@ class MultiTableQuery
false, // is_gotofile
$db, // db
null, // table
- null, // sql_query_for_bookmark - see below
- null, // message_to_show
- null, // sql_data
+ '', // sql_query_for_bookmark - see below
+ '', // message_to_show
$goto, // goto
null, // disp_query
- null, // disp_message
+ '', // disp_message
$sqlQuery, // sql_query
- null, // complete_query
+ $sqlQuery, // complete_query
);
}
}
diff --git a/src/Sql.php b/src/Sql.php
index 34812390b4..aa66409881 100644
--- a/src/Sql.php
+++ b/src/Sql.php
@@ -5,7 +5,6 @@ declare(strict_types=1);
namespace PhpMyAdmin;
use PhpMyAdmin\Bookmarks\BookmarkRepository;
-use PhpMyAdmin\ConfigStorage\Features\BookmarkFeature;
use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\ConfigStorage\RelationCleanup;
use PhpMyAdmin\Dbal\DatabaseInterface;
@@ -508,15 +507,13 @@ class Sql
* @param bool $bookmarkReplace whether to replace existing bookmarks
*/
public function storeTheQueryAsBookmark(
- BookmarkFeature|null $bookmarkFeature,
string $db,
string $bookmarkUser,
string $sqlQueryForBookmark,
string $bookmarkLabel,
bool $bookmarkReplace,
): void {
- // Should we replace bookmark?
- if ($bookmarkReplace && $bookmarkFeature !== null) {
+ if ($bookmarkReplace) {
$bookmarks = $this->bookmarkRepository->getList($this->config->selectedServer['user'], $db);
foreach ($bookmarks as $bookmark) {
if ($bookmark->getLabel() !== $bookmarkLabel) {
@@ -587,19 +584,19 @@ class Sql
/**
* If a table, database or column gets dropped, clean comments.
*
- * @param string $db current database
- * @param string $table current table
- * @param string|null $column current column
- * @param bool $purge whether purge set or not
+ * @param string $db current database
+ * @param string $table current table
+ * @param string $column current column
+ * @param bool $purge whether purge set or not
*/
- private function cleanupRelations(string $db, string $table, string|null $column, bool $purge): void
+ private function cleanupRelations(string $db, string $table, string $column, bool $purge): void
{
if (! $purge || $db === '') {
return;
}
if ($table !== '') {
- if ($column !== null && $column !== '') {
+ if ($column !== '') {
$this->relationCleanup->column($db, $table, $column);
} else {
$this->relationCleanup->table($db, $table);
@@ -706,11 +703,11 @@ class Sql
/**
* Function to handle all aspects relating to executing the query
*
- * @param string $fullSqlQuery full sql query
- * @param bool $isGotoFile whether to go to a file
- * @param string $db current database
- * @param string|null $table current table
- * @param string|null $sqlQueryForBookmark sql query to be stored as bookmark
+ * @param string $fullSqlQuery full sql query
+ * @param bool $isGotoFile whether to go to a file
+ * @param string $db current database
+ * @param string $table current table
+ * @param string $sqlQueryForBookmark sql query to be stored as bookmark
*
* @psalm-return array{
* ResultInterface|false,
@@ -725,11 +722,11 @@ class Sql
string $fullSqlQuery,
bool $isGotoFile,
string $db,
- string|null $table,
- string|null $sqlQueryForBookmark,
+ string $table,
+ string $sqlQueryForBookmark,
): array {
$response = ResponseRenderer::getInstance();
- $response->getHeader()->getMenu()->setTable($table ?? '');
+ $response->getHeader()->getMenu()->setTable($table);
Profiling::enable($this->dbi);
@@ -759,11 +756,9 @@ class Sql
// If there are no errors and bookmarklabel was given,
// store the query as a bookmark
if (! empty($_POST['bkm_label']) && $sqlQueryForBookmark) {
- $bookmarkFeature = $this->relation->getRelationParameters()->bookmarkFeature;
$this->storeTheQueryAsBookmark(
- $bookmarkFeature,
$db,
- $bookmarkFeature !== null ? $this->config->selectedServer['user'] : '',
+ $this->config->selectedServer['user'],
$sqlQueryForBookmark,
$_POST['bkm_label'],
isset($_POST['bkm_replace']),
@@ -779,9 +774,9 @@ class Sql
$justBrowsing = self::isJustBrowsing($statementInfo);
- $unlimNumRows = $this->countQueryResults($numRows, $justBrowsing, $db, $table ?? '', $statementInfo);
+ $unlimNumRows = $this->countQueryResults($numRows, $justBrowsing, $db, $table, $statementInfo);
- $this->cleanupRelations($db, $table ?? '', $_POST['dropped_column'] ?? null, ! empty($_POST['purge']));
+ $this->cleanupRelations($db, $table, $_POST['dropped_column'] ?? '', ! empty($_POST['purge']));
return [$result, $numRows, $unlimNumRows, $profilingResults, $errorMessage];
}
@@ -815,11 +810,11 @@ class Sql
/**
* Function to get the message for the no rows returned case
*
- * @param string|null $messageToShow message to show
- * @param int|string $numRows number of rows
+ * @param string $messageToShow message to show
+ * @param int|string $numRows number of rows
*/
private function getMessageForNoRowsReturned(
- string|null $messageToShow,
+ string $messageToShow,
StatementInfo $statementInfo,
int|string $numRows,
): Message {
@@ -856,7 +851,7 @@ class Sql
// fact that $message_to_show is sent for every case.
// The $message_to_show containing a success message and sent with
// the form should not have priority over errors
- } elseif ($messageToShow && $statementInfo->flags->queryType !== StatementType::Select) {
+ } elseif ($messageToShow !== '' && $statementInfo->flags->queryType !== StatementType::Select) {
$message = Message::rawSuccess(htmlspecialchars($messageToShow));
} elseif (! empty($GLOBALS['show_as_php'])) {
$message = Message::success(__('Showing as PHP code'));
@@ -898,13 +893,13 @@ class Sql
*
* @param string $db current database
* @param string|null $table current table
- * @param string|null $messageToShow message to show
+ * @param string $messageToShow message to show
* @param int|string $numRows number of rows
* @param DisplayResults $displayResultsObject DisplayResult instance
* @param string $errorMessage error message from tryQuery
* @param ResultInterface|false $result executed query results
* @param string $sqlQuery sql query
- * @param string|null $completeQuery complete sql query
+ * @param string $completeQuery complete sql query
* @psalm-param int|numeric-string $numRows
* @psalm-param list $profilingResults
*
@@ -914,14 +909,14 @@ class Sql
StatementInfo $statementInfo,
string $db,
string|null $table,
- string|null $messageToShow,
+ string $messageToShow,
int|string $numRows,
DisplayResults $displayResultsObject,
string $errorMessage,
array $profilingResults,
ResultInterface|false $result,
string $sqlQuery,
- string|null $completeQuery,
+ string $completeQuery,
): string {
if ($this->isDeleteTransformationInfo($statementInfo)) {
$this->deleteTransformationInfo($db, $table ?? '', $statementInfo);
@@ -1011,7 +1006,7 @@ class Sql
'id_bookmark' => 1,
]),
'user' => $this->config->selectedServer['user'],
- 'sql_query' => $completeQuery ?? $sqlQuery,
+ 'sql_query' => $completeQuery,
'allow_shared_bookmarks' => $this->config->settings['AllowSharedBookmarks'],
]);
}
@@ -1182,16 +1177,14 @@ class Sql
*
* @param string|null $displayQuery display query
* @param bool $showSql whether to show sql
- * @param mixed[] $sqlData sql data
* @param Message|string $displayMessage display message
*/
private function getHtmlForPreviousUpdateQuery(
string|null $displayQuery,
bool $showSql,
- array $sqlData,
Message|string $displayMessage,
): string {
- if ($displayQuery !== null && $showSql && $sqlData === []) {
+ if ($displayQuery !== null && $showSql) {
return Generator::getMessage($displayMessage, $displayQuery, MessageType::Success);
}
@@ -1201,21 +1194,15 @@ class Sql
/**
* To get the message if a column index is missing. If not will return null
*
- * @param string|null $table current table
- * @param string $database current database
- * @param bool $editable whether the results table can be editable or not
- * @param bool $hasUniqueKey whether there is a unique key
+ * @param string $database current database
+ * @param bool $editable whether the results table can be editable or not
+ * @param bool $hasUniqueKey whether there is a unique key
*/
private function getMessageIfMissingColumnIndex(
- string|null $table,
string $database,
bool $editable,
bool $hasUniqueKey,
): string {
- if ($table === null) {
- return '';
- }
-
$output = '';
if (Utilities::isSystemSchema($database) || ! $editable) {
$output = Message::notice(
@@ -1253,17 +1240,16 @@ class Sql
/**
* Function to display results when the executed query returns non empty results
*
- * @param ResultInterface $result executed query results
- * @param string $db current database
- * @param string|null $table current table
- * @param mixed[]|null $sqlData sql data
- * @param DisplayResults $displayResultsObject Instance of DisplayResults
- * @param int|string $unlimNumRows unlimited number of rows
- * @param int|string $numRows number of rows
- * @param string|null $dispQuery display query
- * @param Message|string|null $dispMessage display message
- * @param string $sqlQuery sql query
- * @param string|null $completeQuery complete sql query
+ * @param ResultInterface $result executed query results
+ * @param string $db current database
+ * @param string|null $table current table
+ * @param DisplayResults $displayResultsObject Instance of DisplayResults
+ * @param int|string $unlimNumRows unlimited number of rows
+ * @param int|string $numRows number of rows
+ * @param string|null $dispQuery display query
+ * @param Message|string $dispMessage display message
+ * @param string $sqlQuery sql query
+ * @param string $completeQuery complete sql query
* @psalm-param int|numeric-string $unlimNumRows
* @psalm-param int|numeric-string $numRows
* @psalm-param list $profilingResults
@@ -1275,15 +1261,14 @@ class Sql
StatementInfo $statementInfo,
string $db,
string|null $table,
- array|null $sqlData,
DisplayResults $displayResultsObject,
int|string $unlimNumRows,
int|string $numRows,
string|null $dispQuery,
- Message|string|null $dispMessage,
+ Message|string $dispMessage,
array $profilingResults,
string $sqlQuery,
- string|null $completeQuery,
+ string $completeQuery,
): string {
// If we are retrieving the full value of a truncated field or the original
// value of a transformed field, show it here
@@ -1381,13 +1366,14 @@ class Sql
$previousUpdateQueryHtml = $this->getHtmlForPreviousUpdateQuery(
$dispQuery,
$this->config->settings['ShowSQL'],
- $sqlData ?? [],
- $dispMessage ?? '',
+ $dispMessage,
);
$profilingChartHtml = $this->getProfilingChart($profilingResults);
- $missingUniqueColumnMessage = $this->getMessageIfMissingColumnIndex($table, $db, $editable, $hasUnique);
+ $missingUniqueColumnMessage = $table !== null
+ ? $this->getMessageIfMissingColumnIndex($db, $editable, $hasUnique)
+ : '';
$bookmarkCreatedMessage = $this->getBookmarkCreatedMessage();
@@ -1418,7 +1404,7 @@ class Sql
'id_bookmark' => 1,
]),
'user' => $this->config->selectedServer['user'],
- 'sql_query' => $completeQuery ?? $sqlQuery,
+ 'sql_query' => $completeQuery,
]);
}
@@ -1435,31 +1421,29 @@ class Sql
/**
* Function to execute the query and send the response
*
- * @param bool $isGotoFile whether goto file or not
- * @param string $db current database
- * @param string|null $table current table
- * @param string|null $sqlQueryForBookmark the sql query to be stored as bookmark
- * @param string|null $messageToShow message to show
- * @param mixed[]|null $sqlData sql data
- * @param string $goto goto page url
- * @param string|null $dispQuery display query
- * @param Message|string|null $dispMessage display message
- * @param string $sqlQuery sql query
- * @param string|null $completeQuery complete query
+ * @param bool $isGotoFile whether goto file or not
+ * @param string $db current database
+ * @param string|null $table current table
+ * @param string $sqlQueryForBookmark the sql query to be stored as bookmark
+ * @param string $messageToShow message to show
+ * @param string $goto goto page url
+ * @param string|null $dispQuery display query
+ * @param Message|string $dispMessage display message
+ * @param string $sqlQuery sql query
+ * @param string $completeQuery complete query
*/
public function executeQueryAndSendQueryResponse(
StatementInfo|null $statementInfo,
bool $isGotoFile,
string $db,
string|null $table,
- string|null $sqlQueryForBookmark,
- string|null $messageToShow,
- array|null $sqlData,
+ string $sqlQueryForBookmark,
+ string $messageToShow,
string $goto,
string|null $dispQuery,
- Message|string|null $dispMessage,
+ Message|string $dispMessage,
string $sqlQuery,
- string|null $completeQuery,
+ string $completeQuery,
): string {
if ($statementInfo === null) {
// Parse and analyze the query
@@ -1475,7 +1459,6 @@ class Sql
$table, // table
$sqlQueryForBookmark, // sql_query_for_bookmark
$messageToShow, // message_to_show
- $sqlData, // sql_data
$goto, // goto
$dispQuery, // disp_query
$dispMessage, // disp_message
@@ -1487,17 +1470,16 @@ class Sql
/**
* Function to execute the query and send the response
*
- * @param bool $isGotoFile whether goto file or not
- * @param string $db current database
- * @param string|null $table current table
- * @param string|null $sqlQueryForBookmark the sql query to be stored as bookmark
- * @param string|null $messageToShow message to show
- * @param mixed[]|null $sqlData sql data
- * @param string $goto goto page url
- * @param string|null $dispQuery display query
- * @param Message|string|null $dispMessage display message
- * @param string $sqlQuery sql query
- * @param string|null $completeQuery complete query
+ * @param bool $isGotoFile whether goto file or not
+ * @param string $db current database
+ * @param string|null $table current table
+ * @param string $sqlQueryForBookmark the sql query to be stored as bookmark
+ * @param string $messageToShow message to show
+ * @param string $goto goto page url
+ * @param string|null $dispQuery display query
+ * @param Message|string $dispMessage display message
+ * @param string $sqlQuery sql query
+ * @param string $completeQuery complete query
*
* @return string html
*/
@@ -1506,14 +1488,13 @@ class Sql
bool $isGotoFile,
string $db,
string|null $table,
- string|null $sqlQueryForBookmark,
- string|null $messageToShow,
- array|null $sqlData,
+ string $sqlQueryForBookmark,
+ string $messageToShow,
string $goto,
string|null $dispQuery,
- Message|string|null $dispMessage,
+ Message|string $dispMessage,
string $sqlQuery,
- string|null $completeQuery,
+ string $completeQuery,
): string {
// Handle remembered sorting order, only for single table query.
// Handling is not required when it's a union query
@@ -1526,7 +1507,7 @@ class Sql
&& ! isset($_POST['sort_by_key'])
) {
if (! isset($_SESSION['sql_from_query_box'])) {
- $statementInfo = $this->handleSortOrder($db, $table, $statementInfo, $sqlQuery);
+ $statementInfo = $this->handleSortOrder($db, $table ?? '', $statementInfo, $sqlQuery);
} else {
unset($_SESSION['sql_from_query_box']);
}
@@ -1575,7 +1556,7 @@ class Sql
$fullSqlQuery,
$isGotoFile,
$db,
- $table,
+ $table ?? '',
$sqlQueryForBookmark,
);
@@ -1603,7 +1584,6 @@ class Sql
$statementInfo,
$db,
$table,
- $sqlData,
$displayResultsObject,
$unlimNumRows,
$numRows,
diff --git a/tests/unit/Config/FormTest.php b/tests/unit/Config/FormTest.php
index 593ea98bbc..586d9a24e4 100644
--- a/tests/unit/Config/FormTest.php
+++ b/tests/unit/Config/FormTest.php
@@ -68,7 +68,8 @@ class FormTest extends AbstractTestCase
['7' => 'Seven'],
);
- self::assertNull(
+ self::assertSame(
+ '',
$this->object->getOptionType('123/4/5/6'),
);
diff --git a/tests/unit/SqlTest.php b/tests/unit/SqlTest.php
index fd61c96f7e..9a80c899f5 100644
--- a/tests/unit/SqlTest.php
+++ b/tests/unit/SqlTest.php
@@ -607,14 +607,13 @@ class SqlTest extends AbstractTestCase
false,
'sakila',
'different_table',
- null,
- null,
- null,
+ '',
+ '',
'index.php?route=/sql',
null,
- null,
+ '',
+ 'SELECT * FROM `sakila`.`country` LIMIT 0, 3;',
'SELECT * FROM `sakila`.`country` LIMIT 0, 3;',
- null,
);
self::assertStringContainsString('Showing rows 0 - 2 (3 total', $actual);
self::assertStringContainsString('SELECT * FROM `sakila`.`country` LIMIT 0, 3;', $actual);