From 3353b47721ab4ac43065334145458b143ffad05a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Mon, 29 Jan 2024 12:47:15 -0300 Subject: [PATCH] Create ConnectionType enum MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaces Connection::TYPE_* constants with ConnectionType enum. Signed-off-by: MaurĂ­cio Meneghini Fauth --- phpstan-baseline.neon | 2 +- psalm-baseline.xml | 15 -- src/Bookmarks/Bookmark.php | 6 +- src/Bookmarks/BookmarkRepository.php | 8 +- src/Config.php | 9 +- src/ConfigStorage/Relation.php | 104 +++++------ src/ConfigStorage/RelationCleanup.php | 98 +++++------ src/ConfigStorage/UserGroups.php | 16 +- .../Server/DatabasesController.php | 4 +- .../Server/UserGroupsFormController.php | 4 +- src/Database/CentralColumns.php | 92 +++++----- src/Database/Designer/Common.php | 70 ++++---- src/DatabaseInterface.php | 166 +++++++----------- src/Dbal/Connection.php | 14 +- src/Dbal/ConnectionType.php | 17 ++ src/Dbal/DbalInterface.php | 99 ++++------- src/Export/TemplateModel.php | 32 ++-- src/Favorites/RecentFavoriteTables.php | 8 +- src/Http/Middleware/Authentication.php | 8 +- src/Menu.php | 4 +- src/Navigation/Navigation.php | 22 +-- src/Navigation/Nodes/Node.php | 4 +- src/Navigation/Nodes/NodeDatabase.php | 8 +- src/Plugins/Export/ExportCsv.php | 4 +- src/Plugins/Export/ExportHtmlword.php | 4 +- src/Plugins/Export/ExportJson.php | 4 +- src/Plugins/Export/ExportLatex.php | 4 +- src/Plugins/Export/ExportMediawiki.php | 4 +- src/Plugins/Export/ExportOds.php | 4 +- src/Plugins/Export/ExportOdt.php | 4 +- src/Plugins/Export/ExportPhparray.php | 4 +- src/Plugins/Export/ExportSql.php | 4 +- src/Plugins/Export/ExportTexytext.php | 4 +- src/Plugins/Export/ExportXml.php | 4 +- src/Plugins/Export/ExportYaml.php | 4 +- src/Plugins/Export/Helpers/Pdf.php | 6 +- src/Plugins/Schema/Pdf/Pdf.php | 4 +- src/Replication/Replication.php | 20 +-- src/Replication/ReplicationGui.php | 16 +- src/Server/Privileges.php | 19 +- src/Table/Table.php | 85 ++++----- src/Tracking/Tracker.php | 68 +++---- src/Tracking/Tracking.php | 35 ++-- src/Tracking/TrackingChecker.php | 4 +- src/Transformations.php | 46 ++--- src/UserPreferences.php | 12 +- tests/classes/ConfigTest.php | 37 ++-- .../Server/VariablesControllerTest.php | 6 +- tests/classes/Database/CentralColumnsTest.php | 16 +- .../classes/Database/Designer/CommonTest.php | 12 +- tests/classes/Database/RoutinesTest.php | 6 +- tests/classes/DatabaseInterfaceTest.php | 6 +- tests/classes/NormalizationTest.php | 8 +- .../classes/Plugins/Export/ExportOdsTest.php | 8 +- .../classes/Plugins/Export/ExportOdtTest.php | 8 +- .../classes/Plugins/Export/ExportSqlTest.php | 10 +- .../Plugins/Export/ExportTexytextTest.php | 6 +- tests/classes/Server/PrivilegesTest.php | 6 +- tests/classes/Table/TableTest.php | 36 ++-- tests/classes/Tracking/TrackerTest.php | 8 +- tests/classes/UserPreferencesTest.php | 14 +- 61 files changed, 641 insertions(+), 719 deletions(-) create mode 100644 src/Dbal/ConnectionType.php diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 98311c6fee..db9faa8148 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -7331,7 +7331,7 @@ parameters: path: src/DatabaseInterface.php - - message: "#^Parameter \\#1 \\$callback of function array_map expects \\(callable\\(mixed\\)\\: mixed\\)\\|null, Closure\\(string, 0\\|1\\|2\\=\\)\\: non\\-empty\\-string given\\.$#" + message: "#^Parameter \\#1 \\$callback of function array_map expects \\(callable\\(mixed\\)\\: mixed\\)\\|null, Closure\\(string, PhpMyAdmin\\\\Dbal\\\\ConnectionType\\=\\)\\: non\\-empty\\-string given\\.$#" count: 1 path: src/DatabaseInterface.php diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 0d3b32c7f1..823605a4f5 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -5058,9 +5058,6 @@ Routing::$route - - private array $connections = []; - @@ -5072,18 +5069,6 @@ $a $b - connections[$connectionType]]]> - connections[$connectionType]]]> - connections[$connectionType]]]> - connections[$connectionType]]]> - connections[$connectionType]]]> - connections[$connectionType]]]> - connections[$connectionType]]]> - connections[$connectionType]]]> - connections[$connectionType]]]> - connections[$connectionType]]]> - connections[$connectionType]]]> - connections[$connectionType]]]> versionComment]]> versionString]]> diff --git a/src/Bookmarks/Bookmark.php b/src/Bookmarks/Bookmark.php index 3e0c5fda69..f48fca8dec 100644 --- a/src/Bookmarks/Bookmark.php +++ b/src/Bookmarks/Bookmark.php @@ -9,7 +9,7 @@ namespace PhpMyAdmin\Bookmarks; use PhpMyAdmin\ConfigStorage\Features\BookmarkFeature; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Util; use function count; @@ -95,7 +95,7 @@ class Bookmark . $this->dbi->quoteString($this->query) . ', ' . $this->dbi->quoteString($this->label) . ')'; - return (bool) $this->dbi->query($query, Connection::TYPE_CONTROL); + return (bool) $this->dbi->query($query, ConnectionType::ControlUser); } /** @@ -107,7 +107,7 @@ class Bookmark . '.' . Util::backquote($this->bookmarkFeature->bookmark) . ' WHERE id = ' . $this->id; - return (bool) $this->dbi->tryQuery($query, Connection::TYPE_CONTROL); + return (bool) $this->dbi->tryQuery($query, ConnectionType::ControlUser); } /** diff --git a/src/Bookmarks/BookmarkRepository.php b/src/Bookmarks/BookmarkRepository.php index cf30997f27..5eb4b6cde0 100644 --- a/src/Bookmarks/BookmarkRepository.php +++ b/src/Bookmarks/BookmarkRepository.php @@ -11,7 +11,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\ConfigStorage\Features\BookmarkFeature; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Util; @@ -93,7 +93,7 @@ final class BookmarkRepository $query .= ' ORDER BY label ASC'; - $result = $this->dbi->fetchResult($query, null, null, Connection::TYPE_CONTROL); + $result = $this->dbi->fetchResult($query, null, null, ConnectionType::ControlUser); $bookmarks = []; foreach ($result as $row) { @@ -131,7 +131,7 @@ final class BookmarkRepository $query .= ' LIMIT 1'; - $result = $this->dbi->fetchSingleRow($query, DatabaseInterface::FETCH_ASSOC, Connection::TYPE_CONTROL); + $result = $this->dbi->fetchSingleRow($query, DatabaseInterface::FETCH_ASSOC, ConnectionType::ControlUser); if ($result !== null) { return $this->createFromRow($result); } @@ -159,7 +159,7 @@ final class BookmarkRepository . ' AND user = ' . $this->dbi->quoteString($user) . ' LIMIT 1'; - $result = $this->dbi->fetchSingleRow($query, DatabaseInterface::FETCH_ASSOC, Connection::TYPE_CONTROL); + $result = $this->dbi->fetchSingleRow($query, DatabaseInterface::FETCH_ASSOC, ConnectionType::ControlUser); if ($result !== null) { return $this->createFromRow($result); } diff --git a/src/Config.php b/src/Config.php index 60a8505e10..5cab7a15e1 100644 --- a/src/Config.php +++ b/src/Config.php @@ -7,7 +7,7 @@ namespace PhpMyAdmin; use PhpMyAdmin\Config\Settings; use PhpMyAdmin\Config\Settings\Server; use PhpMyAdmin\ConfigStorage\Relation; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Exceptions\ConfigException; use PhpMyAdmin\Routing\Routing; use PhpMyAdmin\Theme\ThemeManager; @@ -70,7 +70,6 @@ use const PHP_URL_SCHEME; /** * Configuration handling * - * @psalm-import-type ConnectionType from Connection * @psalm-import-type ServerSettingsType from Server * @psalm-import-type SettingsType from Settings */ @@ -1105,12 +1104,10 @@ class Config /** * Return connection parameters for the database server - * - * @psalm-param ConnectionType $connectionType */ - public static function getConnectionParams(Server $currentServer, int $connectionType): Server + public static function getConnectionParams(Server $currentServer, ConnectionType $connectionType): Server { - if ($connectionType !== Connection::TYPE_CONTROL) { + if ($connectionType !== ConnectionType::ControlUser) { if ($currentServer->host !== '' && $currentServer->port !== '') { return $currentServer; } diff --git a/src/ConfigStorage/Relation.php b/src/ConfigStorage/Relation.php index a828c70316..d24b8a715b 100644 --- a/src/ConfigStorage/Relation.php +++ b/src/ConfigStorage/Relation.php @@ -8,7 +8,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\ConfigStorage\Features\PdfFeature; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\InternalRelations; @@ -154,7 +154,7 @@ class Relation } $config = Config::getInstance(); - $tables = $this->dbi->getTables($config->selectedServer['pmadb'], Connection::TYPE_CONTROL); + $tables = $this->dbi->getTables($config->selectedServer['pmadb'], ConnectionType::ControlUser); if ($tables === []) { return null; } @@ -245,7 +245,7 @@ class Relation if ( Current::$server === 0 || $config->selectedServer['pmadb'] === '' - || ! $this->dbi->selectDb($config->selectedServer['pmadb'], Connection::TYPE_CONTROL) + || ! $this->dbi->selectDb($config->selectedServer['pmadb'], ConnectionType::ControlUser) ) { $config->selectedServer['pmadb'] = ''; @@ -346,14 +346,14 @@ class Relation ], (string) $query, ); - $this->dbi->tryMultiQuery($query, Connection::TYPE_CONTROL); + $this->dbi->tryMultiQuery($query, ConnectionType::ControlUser); // skips result sets of query as we are not interested in it /** @infection-ignore-all */ do { - $hasResult = $this->dbi->nextResult(Connection::TYPE_CONTROL); + $hasResult = $this->dbi->nextResult(ConnectionType::ControlUser); } while ($hasResult !== false); - $error = $this->dbi->getError(Connection::TYPE_CONTROL); + $error = $this->dbi->getError(ConnectionType::ControlUser); // return true if no error exists otherwise false return $error === ''; @@ -391,7 +391,7 @@ class Relation $relQuery .= ' AND `master_field` = ' . $this->dbi->quoteString($column); } - $foreign = $this->dbi->fetchResult($relQuery, 'master_field', null, Connection::TYPE_CONTROL); + $foreign = $this->dbi->fetchResult($relQuery, 'master_field', null, ConnectionType::ControlUser); } if (($source === 'both' || $source === 'foreign') && strlen($table) > 0) { @@ -459,7 +459,7 @@ class Relation . ' WHERE `db_name` = ' . $this->dbi->quoteString($db) . ' AND `table_name` = ' . $this->dbi->quoteString($table); - $row = $this->dbi->fetchSingleRow($dispQuery, DatabaseInterface::FETCH_ASSOC, Connection::TYPE_CONTROL); + $row = $this->dbi->fetchSingleRow($dispQuery, DatabaseInterface::FETCH_ASSOC, ConnectionType::ControlUser); if (isset($row['display_field'])) { return $row['display_field']; } @@ -533,7 +533,7 @@ class Relation $comQry = 'SELECT `comment`' . ' FROM ' . Util::backquote($columnCommentsFeature->database) . '.' . Util::backquote($columnCommentsFeature->columnInfo) - . ' WHERE db_name = ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) + . ' WHERE db_name = ' . $this->dbi->quoteString($db, ConnectionType::ControlUser) . ' AND table_name = \'\'' . ' AND column_name = \'(db_comment)\''; $comRs = $this->dbi->tryQueryAsControlUser($comQry); @@ -567,17 +567,17 @@ class Relation . Util::backquote($columnCommentsFeature->columnInfo) . ' (`db_name`, `table_name`, `column_name`, `comment`)' . ' VALUES (' - . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) + . $this->dbi->quoteString($db, ConnectionType::ControlUser) . ", '', '(db_comment)', " - . $this->dbi->quoteString($comment, Connection::TYPE_CONTROL) + . $this->dbi->quoteString($comment, ConnectionType::ControlUser) . ') ' . ' ON DUPLICATE KEY UPDATE ' - . '`comment` = ' . $this->dbi->quoteString($comment, Connection::TYPE_CONTROL); + . '`comment` = ' . $this->dbi->quoteString($comment, ConnectionType::ControlUser); } else { $updQuery = 'DELETE FROM ' . Util::backquote($columnCommentsFeature->database) . '.' . Util::backquote($columnCommentsFeature->columnInfo) - . ' WHERE `db_name` = ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) + . ' WHERE `db_name` = ' . $this->dbi->quoteString($db, ConnectionType::ControlUser) . ' AND `table_name` = \'\' AND `column_name` = \'(db_comment)\''; @@ -630,11 +630,11 @@ class Relation `timevalue`, `sqlquery`) VALUES - (' . $this->dbi->quoteString($username, Connection::TYPE_CONTROL) . ', - ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) . ', - ' . $this->dbi->quoteString($table, Connection::TYPE_CONTROL) . ', + (' . $this->dbi->quoteString($username, ConnectionType::ControlUser) . ', + ' . $this->dbi->quoteString($db, ConnectionType::ControlUser) . ', + ' . $this->dbi->quoteString($table, ConnectionType::ControlUser) . ', NOW(), - ' . $this->dbi->quoteString($sqlquery, Connection::TYPE_CONTROL) . ')', + ' . $this->dbi->quoteString($sqlquery, ConnectionType::ControlUser) . ')', ); $this->purgeHistory($username); @@ -676,7 +676,7 @@ class Relation WHERE `username` = ' . $this->dbi->quoteString($username) . ' ORDER BY `id` DESC'; - return $this->dbi->fetchResult($histQuery, null, null, Connection::TYPE_CONTROL); + return $this->dbi->fetchResult($histQuery, null, null, ConnectionType::ControlUser); } /** @@ -703,7 +703,7 @@ class Relation ORDER BY `timevalue` DESC LIMIT ' . $config->settings['QueryHistoryMax'] . ', 1'; - $maxTime = $this->dbi->fetchValue($searchQuery, 0, Connection::TYPE_CONTROL); + $maxTime = $this->dbi->fetchValue($searchQuery, 0, ConnectionType::ControlUser); if (! $maxTime) { return; @@ -713,7 +713,7 @@ class Relation 'DELETE FROM ' . Util::backquote($sqlHistoryFeature->database) . '.' . Util::backquote($sqlHistoryFeature->history) . ' - WHERE `username` = ' . $this->dbi->quoteString($username, Connection::TYPE_CONTROL) + WHERE `username` = ' . $this->dbi->quoteString($username, ConnectionType::ControlUser) . ' AND `timevalue` <= \'' . $maxTime . '\'', ); @@ -1028,10 +1028,10 @@ class Relation $tableQuery = 'UPDATE ' . Util::backquote($relationParameters->displayFeature->database) . '.' . Util::backquote($relationParameters->displayFeature->tableInfo) - . ' SET display_field = ' . $this->dbi->quoteString($newName, Connection::TYPE_CONTROL) - . ' WHERE db_name = ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) - . ' AND table_name = ' . $this->dbi->quoteString($table, Connection::TYPE_CONTROL) - . ' AND display_field = ' . $this->dbi->quoteString($field, Connection::TYPE_CONTROL); + . ' SET display_field = ' . $this->dbi->quoteString($newName, ConnectionType::ControlUser) + . ' WHERE db_name = ' . $this->dbi->quoteString($db, ConnectionType::ControlUser) + . ' AND table_name = ' . $this->dbi->quoteString($table, ConnectionType::ControlUser) + . ' AND display_field = ' . $this->dbi->quoteString($field, ConnectionType::ControlUser); $this->dbi->queryAsControlUser($tableQuery); } @@ -1042,19 +1042,19 @@ class Relation $tableQuery = 'UPDATE ' . Util::backquote($relationParameters->relationFeature->database) . '.' . Util::backquote($relationParameters->relationFeature->relation) - . ' SET master_field = ' . $this->dbi->quoteString($newName, Connection::TYPE_CONTROL) - . ' WHERE master_db = ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) - . ' AND master_table = ' . $this->dbi->quoteString($table, Connection::TYPE_CONTROL) - . ' AND master_field = ' . $this->dbi->quoteString($field, Connection::TYPE_CONTROL); + . ' SET master_field = ' . $this->dbi->quoteString($newName, ConnectionType::ControlUser) + . ' WHERE master_db = ' . $this->dbi->quoteString($db, ConnectionType::ControlUser) + . ' AND master_table = ' . $this->dbi->quoteString($table, ConnectionType::ControlUser) + . ' AND master_field = ' . $this->dbi->quoteString($field, ConnectionType::ControlUser); $this->dbi->queryAsControlUser($tableQuery); $tableQuery = 'UPDATE ' . Util::backquote($relationParameters->relationFeature->database) . '.' . Util::backquote($relationParameters->relationFeature->relation) - . ' SET foreign_field = ' . $this->dbi->quoteString($newName, Connection::TYPE_CONTROL) - . ' WHERE foreign_db = ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) - . ' AND foreign_table = ' . $this->dbi->quoteString($table, Connection::TYPE_CONTROL) - . ' AND foreign_field = ' . $this->dbi->quoteString($field, Connection::TYPE_CONTROL); + . ' SET foreign_field = ' . $this->dbi->quoteString($newName, ConnectionType::ControlUser) + . ' WHERE foreign_db = ' . $this->dbi->quoteString($db, ConnectionType::ControlUser) + . ' AND foreign_table = ' . $this->dbi->quoteString($table, ConnectionType::ControlUser) + . ' AND foreign_field = ' . $this->dbi->quoteString($field, ConnectionType::ControlUser); $this->dbi->queryAsControlUser($tableQuery); } @@ -1082,13 +1082,13 @@ class Relation . Util::backquote($configStorageDatabase) . '.' . Util::backquote($configStorageTable) . ' SET ' - . $dbField . ' = ' . $this->dbi->quoteString($targetDb, Connection::TYPE_CONTROL) + . $dbField . ' = ' . $this->dbi->quoteString($targetDb, ConnectionType::ControlUser) . ', ' - . $tableField . ' = ' . $this->dbi->quoteString($targetTable, Connection::TYPE_CONTROL) + . $tableField . ' = ' . $this->dbi->quoteString($targetTable, ConnectionType::ControlUser) . ' WHERE ' - . $dbField . ' = ' . $this->dbi->quoteString($sourceDb, Connection::TYPE_CONTROL) + . $dbField . ' = ' . $this->dbi->quoteString($sourceDb, ConnectionType::ControlUser) . ' AND ' - . $tableField . ' = ' . $this->dbi->quoteString($sourceTable, Connection::TYPE_CONTROL); + . $tableField . ' = ' . $this->dbi->quoteString($sourceTable, ConnectionType::ControlUser); $this->dbi->queryAsControlUser($query); } @@ -1179,8 +1179,8 @@ class Relation $removeQuery = 'DELETE FROM ' . Util::backquote($relationParameters->pdfFeature->database) . '.' . Util::backquote($relationParameters->pdfFeature->tableCoords) - . ' WHERE db_name = ' . $this->dbi->quoteString($sourceDb, Connection::TYPE_CONTROL) - . ' AND table_name = ' . $this->dbi->quoteString($sourceTable, Connection::TYPE_CONTROL); + . ' WHERE db_name = ' . $this->dbi->quoteString($sourceDb, ConnectionType::ControlUser) + . ' AND table_name = ' . $this->dbi->quoteString($sourceTable, ConnectionType::ControlUser); $this->dbi->queryAsControlUser($removeQuery); } } @@ -1218,11 +1218,11 @@ class Relation $query = 'UPDATE ' . Util::backquote($relationParameters->navigationItemsHidingFeature->database) . '.' . Util::backquote($relationParameters->navigationItemsHidingFeature->navigationHiding) - . ' SET db_name = ' . $this->dbi->quoteString($targetDb, Connection::TYPE_CONTROL) + . ' SET db_name = ' . $this->dbi->quoteString($targetDb, ConnectionType::ControlUser) . ',' - . ' item_name = ' . $this->dbi->quoteString($targetTable, Connection::TYPE_CONTROL) - . ' WHERE db_name = ' . $this->dbi->quoteString($sourceDb, Connection::TYPE_CONTROL) - . ' AND item_name = ' . $this->dbi->quoteString($sourceTable, Connection::TYPE_CONTROL) + . ' item_name = ' . $this->dbi->quoteString($targetTable, ConnectionType::ControlUser) + . ' WHERE db_name = ' . $this->dbi->quoteString($sourceDb, ConnectionType::ControlUser) + . ' AND item_name = ' . $this->dbi->quoteString($sourceTable, ConnectionType::ControlUser) . " AND item_type = 'table'"; $this->dbi->queryAsControlUser($query); } @@ -1240,14 +1240,14 @@ class Relation . Util::backquote($pdfFeature->pdfPages) . ' (db_name, page_descr)' . ' VALUES (' - . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) . ', ' + . $this->dbi->quoteString($db, ConnectionType::ControlUser) . ', ' . $this->dbi->quoteString( $newpage !== null && $newpage !== '' ? $newpage : __('no description'), - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, ) . ')'; $this->dbi->tryQueryAsControlUser($insQuery); - return $this->dbi->insertId(Connection::TYPE_CONTROL); + return $this->dbi->insertId(ConnectionType::ControlUser); } /** @@ -1420,10 +1420,10 @@ class Relation { $this->dbi->tryQuery( 'CREATE DATABASE IF NOT EXISTS ' . Util::backquote($configurationStorageDbName), - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, ); - $error = $this->dbi->getError(Connection::TYPE_CONTROL); + $error = $this->dbi->getError(ConnectionType::ControlUser); if ($error === '') { // Re-build the cache to show the list of tables created or not // This is the case when the DB could be created but no tables just after @@ -1484,15 +1484,15 @@ class Relation 'pma__export_templates' => 'export_templates', ]; - $existingTables = $this->dbi->getTables($db, Connection::TYPE_CONTROL); + $existingTables = $this->dbi->getTables($db, ConnectionType::ControlUser); $tableNameReplacements = $this->getTableReplacementNames($tablesToFeatures); $createQueries = []; if ($create) { $createQueries = $this->getCreateTableSqlQueries($tableNameReplacements); - if (! $this->dbi->selectDb($db, Connection::TYPE_CONTROL)) { - $GLOBALS['message'] = $this->dbi->getError(Connection::TYPE_CONTROL); + if (! $this->dbi->selectDb($db, ConnectionType::ControlUser)) { + $GLOBALS['message'] = $this->dbi->getError(ConnectionType::ControlUser); return; } @@ -1514,9 +1514,9 @@ class Relation continue; } - $this->dbi->tryQuery($createQueries[$table], Connection::TYPE_CONTROL); + $this->dbi->tryQuery($createQueries[$table], ConnectionType::ControlUser); - $error = $this->dbi->getError(Connection::TYPE_CONTROL); + $error = $this->dbi->getError(ConnectionType::ControlUser); if ($error !== '') { $GLOBALS['message'] = $error; diff --git a/src/ConfigStorage/RelationCleanup.php b/src/ConfigStorage/RelationCleanup.php index 8e832ae412..38b2c7b77b 100644 --- a/src/ConfigStorage/RelationCleanup.php +++ b/src/ConfigStorage/RelationCleanup.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\ConfigStorage; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Util; use function sprintf; @@ -38,9 +38,9 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE db_name = %s AND table_name = %s AND column_name = %s', Util::backquote($columnCommentsFeature->database), Util::backquote($columnCommentsFeature->columnInfo), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), - $this->dbi->quoteString($table, Connection::TYPE_CONTROL), - $this->dbi->quoteString($column, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), + $this->dbi->quoteString($table, ConnectionType::ControlUser), + $this->dbi->quoteString($column, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -50,9 +50,9 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE db_name = %s AND table_name = %s AND display_field = %s', Util::backquote($displayFeature->database), Util::backquote($displayFeature->tableInfo), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), - $this->dbi->quoteString($table, Connection::TYPE_CONTROL), - $this->dbi->quoteString($column, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), + $this->dbi->quoteString($table, ConnectionType::ControlUser), + $this->dbi->quoteString($column, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -65,9 +65,9 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE master_db = %s AND master_table = %s AND master_field = %s', Util::backquote($relationFeature->database), Util::backquote($relationFeature->relation), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), - $this->dbi->quoteString($table, Connection::TYPE_CONTROL), - $this->dbi->quoteString($column, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), + $this->dbi->quoteString($table, ConnectionType::ControlUser), + $this->dbi->quoteString($column, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); @@ -75,9 +75,9 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE foreign_db = %s AND foreign_table = %s AND foreign_field = %s', Util::backquote($relationFeature->database), Util::backquote($relationFeature->relation), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), - $this->dbi->quoteString($table, Connection::TYPE_CONTROL), - $this->dbi->quoteString($column, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), + $this->dbi->quoteString($table, ConnectionType::ControlUser), + $this->dbi->quoteString($column, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -103,8 +103,8 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE db_name = %s AND table_name = %s', Util::backquote($columnCommentsFeature->database), Util::backquote($columnCommentsFeature->columnInfo), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), - $this->dbi->quoteString($table, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), + $this->dbi->quoteString($table, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -114,8 +114,8 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE db_name = %s AND table_name = %s', Util::backquote($displayFeature->database), Util::backquote($displayFeature->tableInfo), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), - $this->dbi->quoteString($table, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), + $this->dbi->quoteString($table, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -125,8 +125,8 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE db_name = %s AND table_name = %s', Util::backquote($pdfFeature->database), Util::backquote($pdfFeature->tableCoords), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), - $this->dbi->quoteString($table, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), + $this->dbi->quoteString($table, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -136,8 +136,8 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE master_db = %s AND master_table = %s', Util::backquote($relationFeature->database), Util::backquote($relationFeature->relation), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), - $this->dbi->quoteString($table, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), + $this->dbi->quoteString($table, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); @@ -145,8 +145,8 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE foreign_db = %s AND foreign_table = %s', Util::backquote($relationFeature->database), Util::backquote($relationFeature->relation), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), - $this->dbi->quoteString($table, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), + $this->dbi->quoteString($table, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -156,8 +156,8 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE db_name = %s AND table_name = %s', Util::backquote($uiPreferencesFeature->database), Util::backquote($uiPreferencesFeature->tableUiPrefs), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), - $this->dbi->quoteString($table, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), + $this->dbi->quoteString($table, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -170,9 +170,9 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE db_name = %s AND (table_name = %s OR (item_name = %s AND item_type = \'table\'))', Util::backquote($navigationItemsHidingFeature->database), Util::backquote($navigationItemsHidingFeature->navigationHiding), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), - $this->dbi->quoteString($table, Connection::TYPE_CONTROL), - $this->dbi->quoteString($table, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), + $this->dbi->quoteString($table, ConnectionType::ControlUser), + $this->dbi->quoteString($table, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -204,7 +204,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE db_name = %s', Util::backquote($columnCommentsFeature->database), Util::backquote($columnCommentsFeature->columnInfo), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -214,7 +214,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE dbase = %s', Util::backquote($bookmarkFeature->database), Util::backquote($bookmarkFeature->bookmark), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -224,7 +224,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE db_name = %s', Util::backquote($displayFeature->database), Util::backquote($displayFeature->tableInfo), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -234,7 +234,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE db_name = %s', Util::backquote($pdfFeature->database), Util::backquote($pdfFeature->pdfPages), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); @@ -242,7 +242,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE db_name = %s', Util::backquote($pdfFeature->database), Util::backquote($pdfFeature->tableCoords), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -252,7 +252,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE master_db = %s', Util::backquote($relationFeature->database), Util::backquote($relationFeature->relation), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); @@ -260,7 +260,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE foreign_db = %s', Util::backquote($relationFeature->database), Util::backquote($relationFeature->relation), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -270,7 +270,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE db_name = %s', Util::backquote($uiPreferencesFeature->database), Util::backquote($uiPreferencesFeature->tableUiPrefs), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -280,7 +280,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE db_name = %s', Util::backquote($navigationItemsHidingFeature->database), Util::backquote($navigationItemsHidingFeature->navigationHiding), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -290,7 +290,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE db_name = %s', Util::backquote($savedQueryByExampleSearchesFeature->database), Util::backquote($savedQueryByExampleSearchesFeature->savedSearches), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -303,7 +303,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE db_name = %s', Util::backquote($centralColumnsFeature->database), Util::backquote($centralColumnsFeature->centralColumns), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -336,7 +336,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE `user` = %s', Util::backquote($bookmarkFeature->database), Util::backquote($bookmarkFeature->bookmark), - $this->dbi->quoteString($username, Connection::TYPE_CONTROL), + $this->dbi->quoteString($username, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -346,7 +346,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE `username` = %s', Util::backquote($sqlHistoryFeature->database), Util::backquote($sqlHistoryFeature->history), - $this->dbi->quoteString($username, Connection::TYPE_CONTROL), + $this->dbi->quoteString($username, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -356,7 +356,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE `username` = %s', Util::backquote($recentlyUsedTablesFeature->database), Util::backquote($recentlyUsedTablesFeature->recent), - $this->dbi->quoteString($username, Connection::TYPE_CONTROL), + $this->dbi->quoteString($username, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -366,7 +366,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE `username` = %s', Util::backquote($favoriteTablesFeature->database), Util::backquote($favoriteTablesFeature->favorite), - $this->dbi->quoteString($username, Connection::TYPE_CONTROL), + $this->dbi->quoteString($username, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -376,7 +376,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE `username` = %s', Util::backquote($uiPreferencesFeature->database), Util::backquote($uiPreferencesFeature->tableUiPrefs), - $this->dbi->quoteString($username, Connection::TYPE_CONTROL), + $this->dbi->quoteString($username, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -386,7 +386,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE `username` = %s', Util::backquote($userPreferencesFeature->database), Util::backquote($userPreferencesFeature->userConfig), - $this->dbi->quoteString($username, Connection::TYPE_CONTROL), + $this->dbi->quoteString($username, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -396,7 +396,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE `username` = %s', Util::backquote($configurableMenusFeature->database), Util::backquote($configurableMenusFeature->users), - $this->dbi->quoteString($username, Connection::TYPE_CONTROL), + $this->dbi->quoteString($username, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -406,7 +406,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE `username` = %s', Util::backquote($navigationItemsHidingFeature->database), Util::backquote($navigationItemsHidingFeature->navigationHiding), - $this->dbi->quoteString($username, Connection::TYPE_CONTROL), + $this->dbi->quoteString($username, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -416,7 +416,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE `username` = %s', Util::backquote($savedQueryByExampleSearchesFeature->database), Util::backquote($savedQueryByExampleSearchesFeature->savedSearches), - $this->dbi->quoteString($username, Connection::TYPE_CONTROL), + $this->dbi->quoteString($username, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } @@ -429,7 +429,7 @@ class RelationCleanup 'DELETE FROM %s.%s WHERE `username` = %s', Util::backquote($databaseDesignerSettingsFeature->database), Util::backquote($databaseDesignerSettingsFeature->designerSettings), - $this->dbi->quoteString($username, Connection::TYPE_CONTROL), + $this->dbi->quoteString($username, ConnectionType::ControlUser), ); $this->dbi->queryAsControlUser($statement); } diff --git a/src/ConfigStorage/UserGroups.php b/src/ConfigStorage/UserGroups.php index 5fe716881f..ad8c5c7636 100644 --- a/src/ConfigStorage/UserGroups.php +++ b/src/ConfigStorage/UserGroups.php @@ -9,7 +9,7 @@ namespace PhpMyAdmin\ConfigStorage; use PhpMyAdmin\ConfigStorage\Features\ConfigurableMenusFeature; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Template; use PhpMyAdmin\Url; @@ -47,7 +47,7 @@ class UserGroups . '.' . Util::backquote($configurableMenusFeature->users); $dbi = DatabaseInterface::getInstance(); $sqlQuery = 'SELECT `username` FROM ' . $usersTable - . ' WHERE `usergroup`=' . $dbi->quoteString($userGroup, Connection::TYPE_CONTROL); + . ' WHERE `usergroup`=' . $dbi->quoteString($userGroup, ConnectionType::ControlUser); $result = $dbi->tryQueryAsControlUser($sqlQuery); if ($result) { $i = 0; @@ -162,7 +162,7 @@ class UserGroups 'DELETE FROM %s.%s WHERE `usergroup`=%s', Util::backquote($configurableMenusFeature->database), Util::backquote($configurableMenusFeature->users), - $dbi->quoteString($userGroupName, Connection::TYPE_CONTROL), + $dbi->quoteString($userGroupName, ConnectionType::ControlUser), ); $dbi->queryAsControlUser($statement); @@ -170,7 +170,7 @@ class UserGroups 'DELETE FROM %s.%s WHERE `usergroup`=%s', Util::backquote($configurableMenusFeature->database), Util::backquote($configurableMenusFeature->userGroups), - $dbi->quoteString($userGroupName, Connection::TYPE_CONTROL), + $dbi->quoteString($userGroupName, ConnectionType::ControlUser), ); $dbi->queryAsControlUser($statement); } @@ -206,7 +206,7 @@ class UserGroups . '.' . Util::backquote($configurableMenusFeature->userGroups); $dbi = DatabaseInterface::getInstance(); $sqlQuery = 'SELECT * FROM ' . $groupTable - . ' WHERE `usergroup`=' . $dbi->quoteString($userGroup, Connection::TYPE_CONTROL); + . ' WHERE `usergroup`=' . $dbi->quoteString($userGroup, ConnectionType::ControlUser); $result = $dbi->tryQueryAsControlUser($sqlQuery); if ($result) { foreach ($result as $row) { @@ -301,7 +301,7 @@ class UserGroups $dbi = DatabaseInterface::getInstance(); if (! $new) { $sqlQuery = 'DELETE FROM ' . $groupTable - . ' WHERE `usergroup`=' . $dbi->quoteString($userGroup, Connection::TYPE_CONTROL) . ';'; + . ' WHERE `usergroup`=' . $dbi->quoteString($userGroup, ConnectionType::ControlUser) . ';'; $dbi->queryAsControlUser($sqlQuery); } @@ -318,8 +318,8 @@ class UserGroups $tabName = $tabGroupName . '_' . $tab; $allowed = isset($_POST[$tabName]) && $_POST[$tabName] === 'Y'; - $sqlQuery .= '(' . $dbi->quoteString($userGroup, Connection::TYPE_CONTROL) - . ', ' . $dbi->quoteString($tabName, Connection::TYPE_CONTROL) . ", '" + $sqlQuery .= '(' . $dbi->quoteString($userGroup, ConnectionType::ControlUser) + . ', ' . $dbi->quoteString($tabName, ConnectionType::ControlUser) . ", '" . ($allowed ? 'Y' : 'N') . "')"; $first = false; } diff --git a/src/Controllers/Server/DatabasesController.php b/src/Controllers/Server/DatabasesController.php index fdaf623eaf..8834de25fe 100644 --- a/src/Controllers/Server/DatabasesController.php +++ b/src/Controllers/Server/DatabasesController.php @@ -10,7 +10,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\Controllers\AbstractController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\LanguageManager; use PhpMyAdmin\Query\Utilities; @@ -95,7 +95,7 @@ class DatabasesController extends AbstractController $this->databases = $this->dbi->getDatabasesFull( null, $this->hasStatistics, - Connection::TYPE_USER, + ConnectionType::User, $this->sortBy, $this->sortOrder, $position, diff --git a/src/Controllers/Server/UserGroupsFormController.php b/src/Controllers/Server/UserGroupsFormController.php index 67e7a5b5fa..f8a60af345 100644 --- a/src/Controllers/Server/UserGroupsFormController.php +++ b/src/Controllers/Server/UserGroupsFormController.php @@ -10,7 +10,7 @@ use PhpMyAdmin\ConfigStorage\Features\ConfigurableMenusFeature; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\Controllers\AbstractController; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Template; @@ -81,7 +81,7 @@ final class UserGroupsFormController extends AbstractController $userTable, $this->dbi->quoteString($username), ); - $userGroup = $this->dbi->fetchValue($sqlQuery, 0, Connection::TYPE_CONTROL); + $userGroup = $this->dbi->fetchValue($sqlQuery, 0, ConnectionType::ControlUser); $allUserGroups = []; $sqlQuery = 'SELECT DISTINCT `usergroup` FROM ' . $groupTable; diff --git a/src/Database/CentralColumns.php b/src/Database/CentralColumns.php index 13077d95ce..4ee5a5cd53 100644 --- a/src/Database/CentralColumns.php +++ b/src/Database/CentralColumns.php @@ -9,7 +9,7 @@ use PhpMyAdmin\ColumnFull; use PhpMyAdmin\Config; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Message; use PhpMyAdmin\Template; use PhpMyAdmin\Util; @@ -119,19 +119,19 @@ class CentralColumns } $pmadb = $cfgCentralColumns['db']; - $this->dbi->selectDb($pmadb, Connection::TYPE_CONTROL); + $this->dbi->selectDb($pmadb, ConnectionType::ControlUser); $centralListTable = $cfgCentralColumns['table']; //get current values of $db from central column list if ($num == 0) { $query = 'SELECT * FROM ' . Util::backquote($centralListTable) . ' ' - . 'WHERE db_name = ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) . ';'; + . 'WHERE db_name = ' . $this->dbi->quoteString($db, ConnectionType::ControlUser) . ';'; } else { $query = 'SELECT * FROM ' . Util::backquote($centralListTable) . ' ' - . 'WHERE db_name = ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) . ' ' + . 'WHERE db_name = ' . $this->dbi->quoteString($db, ConnectionType::ControlUser) . ' ' . 'LIMIT ' . $from . ', ' . $num . ';'; } - $hasList = $this->dbi->fetchResult($query, null, null, Connection::TYPE_CONTROL); + $hasList = $this->dbi->fetchResult($query, null, null, ConnectionType::ControlUser); $this->handleColumnExtra($hasList); return $hasList; @@ -152,12 +152,12 @@ class CentralColumns } $pmadb = $cfgCentralColumns['db']; - $this->dbi->selectDb($pmadb, Connection::TYPE_CONTROL); + $this->dbi->selectDb($pmadb, ConnectionType::ControlUser); $centralListTable = $cfgCentralColumns['table']; $query = 'SELECT count(db_name) FROM ' . Util::backquote($centralListTable) . ' ' - . 'WHERE db_name = ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) . ';'; - $res = $this->dbi->fetchResult($query, null, null, Connection::TYPE_CONTROL); + . 'WHERE db_name = ' . $this->dbi->quoteString($db, ConnectionType::ControlUser) . ';'; + $res = $this->dbi->fetchResult($query, null, null, ConnectionType::ControlUser); if (isset($res[0])) { return (int) $res[0]; } @@ -188,18 +188,18 @@ class CentralColumns $cols = $this->getWhereInColumns($cols); $pmadb = $cfgCentralColumns['db']; - $this->dbi->selectDb($pmadb, Connection::TYPE_CONTROL); + $this->dbi->selectDb($pmadb, ConnectionType::ControlUser); $centralListTable = $cfgCentralColumns['table']; if ($allFields) { $query = 'SELECT * FROM ' . Util::backquote($centralListTable) . ' WHERE db_name = ' - . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) . ' AND col_name IN (' . $cols . ');'; - $hasList = $this->dbi->fetchResult($query, null, null, Connection::TYPE_CONTROL); + . $this->dbi->quoteString($db, ConnectionType::ControlUser) . ' AND col_name IN (' . $cols . ');'; + $hasList = $this->dbi->fetchResult($query, null, null, ConnectionType::ControlUser); $this->handleColumnExtra($hasList); } else { $query = 'SELECT col_name FROM ' . Util::backquote($centralListTable) . ' WHERE db_name = ' - . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) . ' AND col_name IN (' . $cols . ');'; - $hasList = $this->dbi->fetchResult($query, null, null, Connection::TYPE_CONTROL); + . $this->dbi->quoteString($db, ConnectionType::ControlUser) . ' AND col_name IN (' . $cols . ');'; + $hasList = $this->dbi->fetchResult($query, null, null, ConnectionType::ControlUser); } return $hasList; @@ -233,14 +233,14 @@ class CentralColumns return 'INSERT INTO ' . Util::backquote($centralListTable) . ' ' - . 'VALUES ( ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) . ' ,' - . $this->dbi->quoteString($def->field, Connection::TYPE_CONTROL) . ',' - . $this->dbi->quoteString($type, Connection::TYPE_CONTROL) . ',' - . $this->dbi->quoteString((string) $length, Connection::TYPE_CONTROL) . ',' - . $this->dbi->quoteString($collation, Connection::TYPE_CONTROL) . ',' - . $this->dbi->quoteString($isNull, Connection::TYPE_CONTROL) . ',' + . 'VALUES ( ' . $this->dbi->quoteString($db, ConnectionType::ControlUser) . ' ,' + . $this->dbi->quoteString($def->field, ConnectionType::ControlUser) . ',' + . $this->dbi->quoteString($type, ConnectionType::ControlUser) . ',' + . $this->dbi->quoteString((string) $length, ConnectionType::ControlUser) . ',' + . $this->dbi->quoteString($collation, ConnectionType::ControlUser) . ',' + . $this->dbi->quoteString($isNull, ConnectionType::ControlUser) . ',' . '\'' . implode(',', [$extra, $attribute]) - . '\',' . $this->dbi->quoteString($default, Connection::TYPE_CONTROL) . ');'; + . '\',' . $this->dbi->quoteString($default, ConnectionType::ControlUser) . ');'; } /** @@ -329,12 +329,12 @@ class CentralColumns ); } - $this->dbi->selectDb($pmadb, Connection::TYPE_CONTROL); + $this->dbi->selectDb($pmadb, ConnectionType::ControlUser); foreach ($insQuery as $query) { - if (! $this->dbi->tryQuery($query, Connection::TYPE_CONTROL)) { + if (! $this->dbi->tryQuery($query, ConnectionType::ControlUser)) { $message = Message::error(__('Could not add columns!')); $message->addMessage( - Message::rawError($this->dbi->getError(Connection::TYPE_CONTROL)), + Message::rawError($this->dbi->getError(ConnectionType::ControlUser)), ); break; } @@ -416,17 +416,17 @@ class CentralColumns ); } - $this->dbi->selectDb($pmadb, Connection::TYPE_CONTROL); + $this->dbi->selectDb($pmadb, ConnectionType::ControlUser); $cols = $this->getWhereInColumns($cols); $query = 'DELETE FROM ' . Util::backquote($centralListTable) . ' WHERE db_name = ' - . $this->dbi->quoteString($database, Connection::TYPE_CONTROL) . ' AND col_name IN (' . $cols . ');'; + . $this->dbi->quoteString($database, ConnectionType::ControlUser) . ' AND col_name IN (' . $cols . ');'; - if (! $this->dbi->tryQuery($query, Connection::TYPE_CONTROL)) { + if (! $this->dbi->tryQuery($query, ConnectionType::ControlUser)) { $message = Message::error(__('Could not remove columns!')); $message->addHtml('
' . htmlspecialchars($cols) . '
'); $message->addMessage( - Message::rawError($this->dbi->getError(Connection::TYPE_CONTROL)), + Message::rawError($this->dbi->getError(ConnectionType::ControlUser)), ); } @@ -480,7 +480,7 @@ class CentralColumns ) { $query .= ' DEFAULT ' . $this->dbi->quoteString( (string) $column['col_default'], - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, ); } else { $query .= ' DEFAULT ' . $column['col_default']; @@ -568,7 +568,7 @@ class CentralColumns } $centralTable = $cfgCentralColumns['table']; - $this->dbi->selectDb($cfgCentralColumns['db'], Connection::TYPE_CONTROL); + $this->dbi->selectDb($cfgCentralColumns['db'], ConnectionType::ControlUser); if ($origColName == '') { $def = new ColumnFull( $colName, @@ -584,20 +584,20 @@ class CentralColumns $query = $this->getInsertQuery($def, $db, $centralTable); } else { $query = 'UPDATE ' . Util::backquote($centralTable) - . ' SET col_type = ' . $this->dbi->quoteString($colType, Connection::TYPE_CONTROL) - . ', col_name = ' . $this->dbi->quoteString($colName, Connection::TYPE_CONTROL) - . ', col_length = ' . $this->dbi->quoteString($colLength, Connection::TYPE_CONTROL) + . ' SET col_type = ' . $this->dbi->quoteString($colType, ConnectionType::ControlUser) + . ', col_name = ' . $this->dbi->quoteString($colName, ConnectionType::ControlUser) + . ', col_length = ' . $this->dbi->quoteString($colLength, ConnectionType::ControlUser) . ', col_isNull = ' . $colIsNull - . ', col_collation = ' . $this->dbi->quoteString($collation, Connection::TYPE_CONTROL) + . ', col_collation = ' . $this->dbi->quoteString($collation, ConnectionType::ControlUser) . ', col_extra = \'' . implode(',', [$colExtra, $colAttribute]) . '\'' - . ', col_default = ' . $this->dbi->quoteString($colDefault, Connection::TYPE_CONTROL) - . ' WHERE db_name = ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) - . ' AND col_name = ' . $this->dbi->quoteString($origColName, Connection::TYPE_CONTROL); + . ', col_default = ' . $this->dbi->quoteString($colDefault, ConnectionType::ControlUser) + . ' WHERE db_name = ' . $this->dbi->quoteString($db, ConnectionType::ControlUser) + . ' AND col_name = ' . $this->dbi->quoteString($origColName, ConnectionType::ControlUser); } - if (! $this->dbi->tryQuery($query, Connection::TYPE_CONTROL)) { - return Message::error($this->dbi->getError(Connection::TYPE_CONTROL)); + if (! $this->dbi->tryQuery($query, ConnectionType::ControlUser)) { + return Message::error($this->dbi->getError(ConnectionType::ControlUser)); } return true; @@ -719,12 +719,12 @@ class CentralColumns $centralTable = $cfgCentralColumns['table']; if ($table === '') { $query = 'SELECT * FROM ' . Util::backquote($centralTable) . ' ' - . 'WHERE db_name = ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) . ';'; + . 'WHERE db_name = ' . $this->dbi->quoteString($db, ConnectionType::ControlUser) . ';'; } else { $this->dbi->selectDb($db); $columns = $this->dbi->getColumnNames($db, $table); $query = 'SELECT * FROM ' . Util::backquote($centralTable) . ' ' - . 'WHERE db_name = ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL); + . 'WHERE db_name = ' . $this->dbi->quoteString($db, ConnectionType::ControlUser); if ($columns !== []) { $query .= ' AND col_name NOT IN (' . $this->getWhereInColumns($columns) . ')'; } @@ -732,8 +732,8 @@ class CentralColumns $query .= ';'; } - $this->dbi->selectDb($cfgCentralColumns['db'], Connection::TYPE_CONTROL); - $columnsList = $this->dbi->fetchResult($query, null, null, Connection::TYPE_CONTROL); + $this->dbi->selectDb($cfgCentralColumns['db'], ConnectionType::ControlUser); + $columnsList = $this->dbi->fetchResult($query, null, null, ConnectionType::ControlUser); $this->handleColumnExtra($columnsList); return $columnsList; @@ -807,13 +807,13 @@ class CentralColumns } $pmadb = $cfgCentralColumns['db']; - $this->dbi->selectDb($pmadb, Connection::TYPE_CONTROL); + $this->dbi->selectDb($pmadb, ConnectionType::ControlUser); $centralListTable = $cfgCentralColumns['table']; //get current values of $db from central column list $query = 'SELECT COUNT(db_name) FROM ' . Util::backquote($centralListTable) . ' ' - . 'WHERE db_name = ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) + . 'WHERE db_name = ' . $this->dbi->quoteString($db, ConnectionType::ControlUser) . ($num === 0 ? '' : 'LIMIT ' . $from . ', ' . $num) . ';'; - $result = $this->dbi->fetchResult($query, null, null, Connection::TYPE_CONTROL); + $result = $this->dbi->fetchResult($query, null, null, ConnectionType::ControlUser); if (isset($result[0])) { return (int) $result[0]; @@ -937,7 +937,7 @@ class CentralColumns private function getWhereInColumns(array $columns): string { return implode(',', array_map( - fn (string $string): string => $this->dbi->quoteString($string, Connection::TYPE_CONTROL), + fn (string $string): string => $this->dbi->quoteString($string, ConnectionType::ControlUser), $columns, )); } diff --git a/src/Database/Designer/Common.php b/src/Database/Designer/Common.php index 2ce77c42d9..ba970a6fe7 100644 --- a/src/Database/Designer/Common.php +++ b/src/Database/Designer/Common.php @@ -8,7 +8,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Index; use PhpMyAdmin\Query\Generator as QueryGenerator; use PhpMyAdmin\Table\Table; @@ -245,7 +245,7 @@ class Common . '.' . Util::backquote($pdfFeature->tableCoords) . ' WHERE pdf_page_number = ' . $pg; - return $this->dbi->fetchResult($query, 'name', null, Connection::TYPE_CONTROL); + return $this->dbi->fetchResult($query, 'name', null, ConnectionType::ControlUser); } /** @@ -266,7 +266,7 @@ class Common . ' FROM ' . Util::backquote($pdfFeature->database) . '.' . Util::backquote($pdfFeature->pdfPages) . ' WHERE ' . Util::backquote('page_nr') . ' = ' . $pg; - $pageName = $this->dbi->fetchValue($query, 0, Connection::TYPE_CONTROL); + $pageName = $this->dbi->fetchValue($query, 0, ConnectionType::ControlUser); return $pageName !== false ? $pageName : null; } @@ -314,10 +314,10 @@ class Common $query = 'SELECT `page_nr`' . ' FROM ' . Util::backquote($pdfFeature->database) . '.' . Util::backquote($pdfFeature->pdfPages) - . ' WHERE `db_name` = ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) - . ' AND `page_descr` = ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL); + . ' WHERE `db_name` = ' . $this->dbi->quoteString($db, ConnectionType::ControlUser) + . ' AND `page_descr` = ' . $this->dbi->quoteString($db, ConnectionType::ControlUser); - $defaultPageNo = $this->dbi->fetchValue($query, 0, Connection::TYPE_CONTROL); + $defaultPageNo = $this->dbi->fetchValue($query, 0, ConnectionType::ControlUser); return is_string($defaultPageNo) ? intval($defaultPageNo) : -1; } @@ -338,8 +338,8 @@ class Common $query = 'SELECT `page_nr`' . ' FROM ' . Util::backquote($pdfFeature->database) . '.' . Util::backquote($pdfFeature->pdfPages) - . ' WHERE `page_descr` = ' . $this->dbi->quoteString($pg, Connection::TYPE_CONTROL); - $pageNos = $this->dbi->fetchResult($query, null, null, Connection::TYPE_CONTROL); + . ' WHERE `page_descr` = ' . $this->dbi->quoteString($pg, ConnectionType::ControlUser); + $pageNos = $this->dbi->fetchResult($query, null, null, ConnectionType::ControlUser); return $pageNos !== []; } @@ -367,9 +367,9 @@ class Common $query = 'SELECT MIN(`page_nr`)' . ' FROM ' . Util::backquote($pdfFeature->database) . '.' . Util::backquote($pdfFeature->pdfPages) - . ' WHERE `db_name` = ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL); + . ' WHERE `db_name` = ' . $this->dbi->quoteString($db, ConnectionType::ControlUser); - $minPageNo = $this->dbi->fetchValue($query, 0, Connection::TYPE_CONTROL); + $minPageNo = $this->dbi->fetchValue($query, 0, ConnectionType::ControlUser); return is_string($minPageNo) ? intval($minPageNo) : -1; } @@ -402,7 +402,7 @@ class Common return false; } - $pageId = $this->dbi->quoteString((string) $pg, Connection::TYPE_CONTROL); + $pageId = $this->dbi->quoteString((string) $pg, ConnectionType::ControlUser); $query = 'DELETE FROM ' . Util::backquote($pdfFeature->database) @@ -423,11 +423,11 @@ class Common . Util::backquote($pdfFeature->tableCoords) . ' (`db_name`, `table_name`, `pdf_page_number`, `x`, `y`)' . ' VALUES (' - . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) . ', ' - . $this->dbi->quoteString($tab, Connection::TYPE_CONTROL) . ', ' + . $this->dbi->quoteString($db, ConnectionType::ControlUser) . ', ' + . $this->dbi->quoteString($tab, ConnectionType::ControlUser) . ', ' . $pageId . ', ' - . $this->dbi->quoteString($_POST['t_x'][$key], Connection::TYPE_CONTROL) . ', ' - . $this->dbi->quoteString($_POST['t_y'][$key], Connection::TYPE_CONTROL) . ')'; + . $this->dbi->quoteString($_POST['t_x'][$key], ConnectionType::ControlUser) . ', ' + . $this->dbi->quoteString($_POST['t_y'][$key], ConnectionType::ControlUser) . ')'; $this->dbi->queryAsControlUser($query); } @@ -574,18 +574,18 @@ class Common . '(master_db, master_table, master_field, ' . 'foreign_db, foreign_table, foreign_field)' . ' values(' - . $this->dbi->quoteString($db2, Connection::TYPE_CONTROL) . ', ' - . $this->dbi->quoteString($t2, Connection::TYPE_CONTROL) . ', ' - . $this->dbi->quoteString($f2, Connection::TYPE_CONTROL) . ', ' - . $this->dbi->quoteString($db1, Connection::TYPE_CONTROL) . ', ' - . $this->dbi->quoteString($t1, Connection::TYPE_CONTROL) . ', ' - . $this->dbi->quoteString($f1, Connection::TYPE_CONTROL) . ')'; + . $this->dbi->quoteString($db2, ConnectionType::ControlUser) . ', ' + . $this->dbi->quoteString($t2, ConnectionType::ControlUser) . ', ' + . $this->dbi->quoteString($f2, ConnectionType::ControlUser) . ', ' + . $this->dbi->quoteString($db1, ConnectionType::ControlUser) . ', ' + . $this->dbi->quoteString($t1, ConnectionType::ControlUser) . ', ' + . $this->dbi->quoteString($f1, ConnectionType::ControlUser) . ')'; if ($this->dbi->tryQueryAsControlUser($q)) { return [true, __('Internal relationship has been added.')]; } - $error = $this->dbi->getError(Connection::TYPE_CONTROL); + $error = $this->dbi->getError(ConnectionType::ControlUser); return [false, __('Error: Internal relationship could not be added!') . '
' . $error]; } @@ -632,17 +632,17 @@ class Common $deleteQuery = 'DELETE FROM ' . Util::backquote($relationFeature->database) . '.' . Util::backquote($relationFeature->relation) . ' WHERE ' - . 'master_db = ' . $this->dbi->quoteString($db2, Connection::TYPE_CONTROL) - . ' AND master_table = ' . $this->dbi->quoteString($t2, Connection::TYPE_CONTROL) - . ' AND master_field = ' . $this->dbi->quoteString($f2, Connection::TYPE_CONTROL) - . ' AND foreign_db = ' . $this->dbi->quoteString($db1, Connection::TYPE_CONTROL) - . ' AND foreign_table = ' . $this->dbi->quoteString($t1, Connection::TYPE_CONTROL) - . ' AND foreign_field = ' . $this->dbi->quoteString($f1, Connection::TYPE_CONTROL); + . 'master_db = ' . $this->dbi->quoteString($db2, ConnectionType::ControlUser) + . ' AND master_table = ' . $this->dbi->quoteString($t2, ConnectionType::ControlUser) + . ' AND master_field = ' . $this->dbi->quoteString($f2, ConnectionType::ControlUser) + . ' AND foreign_db = ' . $this->dbi->quoteString($db1, ConnectionType::ControlUser) + . ' AND foreign_table = ' . $this->dbi->quoteString($t1, ConnectionType::ControlUser) + . ' AND foreign_field = ' . $this->dbi->quoteString($f1, ConnectionType::ControlUser); $result = $this->dbi->tryQueryAsControlUser($deleteQuery); if (! $result) { - $error = $this->dbi->getError(Connection::TYPE_CONTROL); + $error = $this->dbi->getError(ConnectionType::ControlUser); return [false, __('Error: Internal relationship could not be removed!') . '
' . $error]; } @@ -670,12 +670,12 @@ class Common . ' FROM ' . Util::backquote($cfgDesigner['db']) . '.' . Util::backquote($cfgDesigner['table']) . ' WHERE username = ' - . $this->dbi->quoteString($cfgDesigner['user'], Connection::TYPE_CONTROL) . ';'; + . $this->dbi->quoteString($cfgDesigner['user'], ConnectionType::ControlUser) . ';'; $origData = $this->dbi->fetchSingleRow( $origDataQuery, DatabaseInterface::FETCH_ASSOC, - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, ); if ($origData !== null && $origData !== []) { @@ -686,9 +686,9 @@ class Common $saveQuery = 'UPDATE ' . Util::backquote($cfgDesigner['db']) . '.' . Util::backquote($cfgDesigner['table']) - . ' SET settings_data = ' . $this->dbi->quoteString($origData, Connection::TYPE_CONTROL) + . ' SET settings_data = ' . $this->dbi->quoteString($origData, ConnectionType::ControlUser) . ' WHERE username = ' - . $this->dbi->quoteString($cfgDesigner['user'], Connection::TYPE_CONTROL) . ';'; + . $this->dbi->quoteString($cfgDesigner['user'], ConnectionType::ControlUser) . ';'; $this->dbi->queryAsControlUser($saveQuery); } else { @@ -698,8 +698,8 @@ class Common . Util::backquote($cfgDesigner['db']) . '.' . Util::backquote($cfgDesigner['table']) . ' (username, settings_data)' - . ' VALUES(' . $this->dbi->quoteString($cfgDesigner['user'], Connection::TYPE_CONTROL) - . ', ' . $this->dbi->quoteString(json_encode($saveData), Connection::TYPE_CONTROL) . ');'; + . ' VALUES(' . $this->dbi->quoteString($cfgDesigner['user'], ConnectionType::ControlUser) + . ', ' . $this->dbi->quoteString(json_encode($saveData), ConnectionType::ControlUser) . ');'; $this->dbi->queryAsControlUser($query); } diff --git a/src/DatabaseInterface.php b/src/DatabaseInterface.php index 5a423a6876..ca18c0cfa5 100644 --- a/src/DatabaseInterface.php +++ b/src/DatabaseInterface.php @@ -7,6 +7,7 @@ namespace PhpMyAdmin; use PhpMyAdmin\Config\Settings\Server; use PhpMyAdmin\Dbal\Connection; use PhpMyAdmin\Dbal\ConnectionException; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Dbal\DbalInterface; use PhpMyAdmin\Dbal\DbiExtension; use PhpMyAdmin\Dbal\DbiMysqli; @@ -72,8 +73,6 @@ use const SORT_DESC; /** * Main interface for database interactions - * - * @psalm-import-type ConnectionType from Connection */ class DatabaseInterface implements DbalInterface { @@ -103,7 +102,7 @@ class DatabaseInterface implements DbalInterface * Opened database connections. * * @var array - * @psalm-var array + * @psalm-var array, Connection> */ private array $connections = []; @@ -140,8 +139,8 @@ class DatabaseInterface implements DbalInterface public function __construct(private DbiExtension $extension) { if (defined('TESTSUITE')) { - $this->connections[Connection::TYPE_USER] = new Connection(new stdClass()); - $this->connections[Connection::TYPE_CONTROL] = new Connection(new stdClass()); + $this->connections[ConnectionType::User->value] = new Connection(new stdClass()); + $this->connections[ConnectionType::ControlUser->value] = new Connection(new stdClass()); } $this->cache = new Cache(); @@ -164,11 +163,10 @@ class DatabaseInterface implements DbalInterface * @param string $query SQL query to execute * @param int $options optional query options * @param bool $cacheAffectedRows whether to cache affected rows - * @psalm-param ConnectionType $connectionType */ public function query( string $query, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, int $options = self::QUERY_BUFFERED, bool $cacheAffectedRows = true, ): ResultInterface { @@ -197,25 +195,24 @@ class DatabaseInterface implements DbalInterface * is provided, it will instruct the extension * to use unbuffered mode * @param bool $cacheAffectedRows whether to cache affected row - * @psalm-param ConnectionType $connectionType */ public function tryQuery( string $query, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, int $options = self::QUERY_BUFFERED, bool $cacheAffectedRows = true, ): ResultInterface|false { $config = Config::getInstance(); $debug = isset($config->settings['DBG']) && $config->settings['DBG']['sql']; - if (! isset($this->connections[$connectionType])) { + if (! isset($this->connections[$connectionType->value])) { return false; } $time = microtime(true); - $result = $this->extension->realQuery($query, $this->connections[$connectionType], $options); + $result = $this->extension->realQuery($query, $this->connections[$connectionType->value], $options); - if ($connectionType === Connection::TYPE_USER) { + if ($connectionType === ConnectionType::User) { $this->lastQueryExecutionTime = microtime(true) - $time; } @@ -243,7 +240,7 @@ class DatabaseInterface implements DbalInterface $this->lastQueryExecutionTime, $this->getWarningCount($connectionType), $cacheAffectedRows ? 'y' : 'n', - $connectionType, + $connectionType->value, $query, ), ); @@ -262,17 +259,16 @@ class DatabaseInterface implements DbalInterface * Send multiple SQL queries to the database server and execute the first one * * @param string $multiQuery multi query statement to execute - * @psalm-param ConnectionType $connectionType */ public function tryMultiQuery( string $multiQuery = '', - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, ): bool { - if (! isset($this->connections[$connectionType])) { + if (! isset($this->connections[$connectionType->value])) { return false; } - return $this->extension->realMultiQuery($this->connections[$connectionType], $multiQuery); + return $this->extension->realMultiQuery($this->connections[$connectionType->value], $multiQuery); } /** @@ -289,7 +285,7 @@ class DatabaseInterface implements DbalInterface // is called for tracking purposes but we want to display the correct number // of rows affected by the original query, not by the query generated for // tracking. - return $this->query($sql, Connection::TYPE_CONTROL, self::QUERY_BUFFERED, false); + return $this->query($sql, ConnectionType::ControlUser, self::QUERY_BUFFERED, false); } /** @@ -306,18 +302,17 @@ class DatabaseInterface implements DbalInterface // is called for tracking purposes but we want to display the correct number // of rows affected by the original query, not by the query generated for // tracking. - return $this->tryQuery($sql, Connection::TYPE_CONTROL, self::QUERY_BUFFERED, false); + return $this->tryQuery($sql, ConnectionType::ControlUser, self::QUERY_BUFFERED, false); } /** * returns array with table names for given db * * @param string $database name of database - * @psalm-param ConnectionType $connectionType * * @return array tables names */ - public function getTables(string $database, int $connectionType = Connection::TYPE_USER): array + public function getTables(string $database, ConnectionType $connectionType = ConnectionType::User): array { if ($database === '') { return []; @@ -359,7 +354,6 @@ class DatabaseInterface implements DbalInterface * @param string $sortBy table attribute to sort by * @param string $sortOrder direction to sort (ASC or DESC) * @param string|null $tableType whether table or view - * @psalm-param ConnectionType $connectionType * * @return (string|int|null)[][] list of tables in given db(s) * @@ -374,7 +368,7 @@ class DatabaseInterface implements DbalInterface string $sortBy = 'Name', string $sortOrder = 'ASC', string|null $tableType = null, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, ): array { $config = Config::getInstance(); if ($limitCount === true) { @@ -643,7 +637,6 @@ class DatabaseInterface implements DbalInterface * @param string $sortOrder ASC or DESC * @param int $limitOffset starting offset for LIMIT * @param bool|int $limitCount row count for LIMIT or true for $cfg['MaxDbList'] - * @psalm-param ConnectionType $connectionType * * @return mixed[] * @@ -652,7 +645,7 @@ class DatabaseInterface implements DbalInterface public function getDatabasesFull( string|null $database = null, bool $forceStats = false, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, string $sortBy = 'SCHEMA_NAME', string $sortOrder = 'ASC', int $limitOffset = 0, @@ -786,7 +779,6 @@ class DatabaseInterface implements DbalInterface * @param string|null $database name of database * @param string|null $table name of table to retrieve columns from * @param string|null $column name of specific column - * @psalm-param ConnectionType $connectionType * * @return mixed[] */ @@ -794,7 +786,7 @@ class DatabaseInterface implements DbalInterface string|null $database = null, string|null $table = null, string|null $column = null, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, ): array { if (! Config::getInstance()->selectedServer['DisableIS']) { $sql = QueryGenerator::getInformationSchemaColumnsFullRequest( @@ -849,7 +841,6 @@ class DatabaseInterface implements DbalInterface * @param string $table name of table to retrieve columns from * @param string $column name of column * @param T $full whether to return full info or only column names - * @psalm-param ConnectionType $connectionType * * @psalm-return (T is true ? ColumnFull : Column)|null * @@ -860,7 +851,7 @@ class DatabaseInterface implements DbalInterface string $table, string $column, bool $full = false, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, ): ColumnFull|Column|null { $sql = QueryGenerator::getColumnsSql( $database, @@ -897,7 +888,6 @@ class DatabaseInterface implements DbalInterface * @param string $database name of database * @param string $table name of table to retrieve columns from * @param T $full whether to return full info or only column names - * @psalm-param ConnectionType $connectionType * * @return ColumnFull[]|Column[] * @psalm-return (T is true ? ColumnFull[] : Column[]) @@ -908,7 +898,7 @@ class DatabaseInterface implements DbalInterface string $database, string $table, bool $full = false, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, ): array { $sql = QueryGenerator::getColumnsSql($database, $table, null, $full); /** @var (string|null)[][] $fields */ @@ -1021,14 +1011,13 @@ class DatabaseInterface implements DbalInterface * * @param string $database name of database * @param string $table name of table to retrieve columns from - * @psalm-param ConnectionType $connectionType * * @return string[] */ public function getColumnNames( string $database, string $table, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, ): array { $sql = QueryGenerator::getColumnsSql($database, $table); @@ -1041,7 +1030,6 @@ class DatabaseInterface implements DbalInterface * * @param string $database name of database * @param string $table name of the table whose indexes are to be retrieved - * @psalm-param ConnectionType $connectionType * * @return array> * @psalm-return array ' SESSION', @@ -1101,12 +1088,11 @@ class DatabaseInterface implements DbalInterface * * @param string $var variable name * @param string $value value to set - * @psalm-param ConnectionType $connectionType */ public function setVariable( string $var, string $value, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, ): bool { $currentValue = $this->getVariable($var, self::GETVAR_SESSION, $connectionType); if ($currentValue == $value) { @@ -1221,14 +1207,13 @@ class DatabaseInterface implements DbalInterface * * @param string $query The query to execute * @param int|string $field field to fetch the value from, starting at 0, with 0 being default - * @psalm-param ConnectionType $connectionType * * @return string|false|null value of first field in first row from result or false if not found */ public function fetchValue( string $query, int|string $field = 0, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, ): string|false|null { $result = $this->tryQuery($query, $connectionType, self::QUERY_BUFFERED, false); if ($result === false) { @@ -1251,12 +1236,11 @@ class DatabaseInterface implements DbalInterface * @param string $query The query to execute * @param string $type NUM|ASSOC|BOTH returned array should either numeric associative or both * @psalm-param DatabaseInterface::FETCH_NUM|DatabaseInterface::FETCH_ASSOC $type - * @psalm-param ConnectionType $connectionType */ public function fetchSingleRow( string $query, string $type = DbalInterface::FETCH_ASSOC, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, ): array|null { $result = $this->tryQuery($query, $connectionType, self::QUERY_BUFFERED, false); if ($result === false) { @@ -1338,7 +1322,6 @@ class DatabaseInterface implements DbalInterface * used as key for array * or array of those * @param string|int|null $value value-name or offset used as value for array - * @psalm-param ConnectionType $connectionType * * @return mixed[] resultrows or values indexed by $key */ @@ -1346,7 +1329,7 @@ class DatabaseInterface implements DbalInterface string $query, string|int|array|null $key = null, string|int|null $value = null, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, ): array { $resultRows = []; @@ -1428,11 +1411,9 @@ class DatabaseInterface implements DbalInterface /** * returns warnings for last query * - * @psalm-param ConnectionType $connectionType - * * @return Warning[] warnings */ - public function getWarnings(int $connectionType = Connection::TYPE_USER): array + public function getWarnings(ConnectionType $connectionType = ConnectionType::User): array { $result = $this->tryQuery('SHOW WARNINGS', $connectionType, 0, false); if ($result === false) { @@ -1559,7 +1540,7 @@ class DatabaseInterface implements DbalInterface public function isConnected(): bool { - return isset($this->connections[Connection::TYPE_USER]); + return isset($this->connections[ConnectionType::User->value]); } /** @return string[] */ @@ -1607,12 +1588,13 @@ class DatabaseInterface implements DbalInterface /** * Connects to the database server. * - * @param int|null $target How to store connection link, defaults to $mode - * @psalm-param ConnectionType $connectionType - * @psalm-param ConnectionType|null $target + * @param ConnectionType|null $target How to store connection link, defaults to $connectionType */ - public function connect(Server $currentServer, int $connectionType, int|null $target = null): Connection|null - { + public function connect( + Server $currentServer, + ConnectionType $connectionType, + ConnectionType|null $target = null, + ): Connection|null { $server = Config::getConnectionParams($currentServer, $connectionType); $target ??= $connectionType; @@ -1631,16 +1613,16 @@ class DatabaseInterface implements DbalInterface $errorHandler->setHideLocation(false); if ($result !== null) { - $this->connections[$target] = $result; + $this->connections[$target->value] = $result; /* Run post connect for user connections */ - if ($target === Connection::TYPE_USER) { + if ($target === ConnectionType::User) { $this->postConnect($currentServer); } return $result; } - if ($connectionType === Connection::TYPE_CONTROL) { + if ($connectionType === ConnectionType::ControlUser) { trigger_error( __( 'Connection for controluser as defined in your configuration failed.', @@ -1656,66 +1638,59 @@ class DatabaseInterface implements DbalInterface * selects given database * * @param string|DatabaseName $dbname database name to select - * @psalm-param ConnectionType $connectionType */ - public function selectDb(string|DatabaseName $dbname, int $connectionType = Connection::TYPE_USER): bool + public function selectDb(string|DatabaseName $dbname, ConnectionType $connectionType = ConnectionType::User): bool { - if (! isset($this->connections[$connectionType])) { + if (! isset($this->connections[$connectionType->value])) { return false; } - return $this->extension->selectDb($dbname, $this->connections[$connectionType]); + return $this->extension->selectDb($dbname, $this->connections[$connectionType->value]); } /** * Prepare next result from multi_query - * - * @psalm-param ConnectionType $connectionType */ - public function nextResult(int $connectionType = Connection::TYPE_USER): ResultInterface|false + public function nextResult(ConnectionType $connectionType = ConnectionType::User): ResultInterface|false { - if (! isset($this->connections[$connectionType])) { + if (! isset($this->connections[$connectionType->value])) { return false; } // TODO: Figure out if we really need to check the return value of this function. - if (! $this->extension->nextResult($this->connections[$connectionType])) { + if (! $this->extension->nextResult($this->connections[$connectionType->value])) { return false; } - return $this->extension->storeResult($this->connections[$connectionType]); + return $this->extension->storeResult($this->connections[$connectionType->value]); } /** * Returns a string representing the type of connection used * - * @psalm-param ConnectionType $connectionType - * * @return string|bool type of connection used */ - public function getHostInfo(int $connectionType = Connection::TYPE_USER): string|bool + public function getHostInfo(ConnectionType $connectionType = ConnectionType::User): string|bool { - if (! isset($this->connections[$connectionType])) { + if (! isset($this->connections[$connectionType->value])) { return false; } - return $this->extension->getHostInfo($this->connections[$connectionType]); + return $this->extension->getHostInfo($this->connections[$connectionType->value]); } /** * Returns the version of the MySQL protocol used * - * @psalm-param ConnectionType $connectionType - * * @return int|bool version of the MySQL protocol used */ - public function getProtoInfo(int $connectionType = Connection::TYPE_USER): int|bool + public function getProtoInfo(ConnectionType $connectionType = ConnectionType::User): int|bool { - if (! isset($this->connections[$connectionType])) { + if (! isset($this->connections[$connectionType->value])) { return false; } - return $this->extension->getProtoInfo($this->connections[$connectionType]); + return $this->extension->getProtoInfo($this->connections[$connectionType->value]); } /** @@ -1730,16 +1705,14 @@ class DatabaseInterface implements DbalInterface /** * Returns last error message or an empty string if no errors occurred. - * - * @psalm-param ConnectionType $connectionType */ - public function getError(int $connectionType = Connection::TYPE_USER): string + public function getError(ConnectionType $connectionType = ConnectionType::User): string { - if (! isset($this->connections[$connectionType])) { + if (! isset($this->connections[$connectionType->value])) { return ''; } - return $this->extension->getError($this->connections[$connectionType]); + return $this->extension->getError($this->connections[$connectionType->value]); } /** @@ -1764,10 +1737,8 @@ class DatabaseInterface implements DbalInterface /** * returns last inserted auto_increment id for given $link * or $GLOBALS['userlink'] - * - * @psalm-param ConnectionType $connectionType */ - public function insertId(int $connectionType = Connection::TYPE_USER): int + public function insertId(ConnectionType $connectionType = ConnectionType::User): int { // If the primary key is BIGINT we get an incorrect result // (sometimes negative, sometimes positive) @@ -1784,15 +1755,14 @@ class DatabaseInterface implements DbalInterface * returns the number of rows affected by last query * * @param bool $getFromCache whether to retrieve from cache - * @psalm-param ConnectionType $connectionType * * @psalm-return int|numeric-string */ public function affectedRows( - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, bool $getFromCache = true, ): int|string { - if (! isset($this->connections[$connectionType])) { + if (! isset($this->connections[$connectionType->value])) { return -1; } @@ -1800,7 +1770,7 @@ class DatabaseInterface implements DbalInterface return $GLOBALS['cached_affected_rows']; } - return $this->extension->affectedRows($this->connections[$connectionType]); + return $this->extension->affectedRows($this->connections[$connectionType->value]); } /** @@ -1841,15 +1811,14 @@ class DatabaseInterface implements DbalInterface * Returns properly quoted string for use in MySQL queries. * * @param string $str string to be quoted - * @psalm-param ConnectionType $connectionType * * @psalm-return non-empty-string * * @psalm-taint-escape sql */ - public function quoteString(string $str, int $connectionType = Connection::TYPE_USER): string + public function quoteString(string $str, ConnectionType $connectionType = ConnectionType::User): string { - return "'" . $this->extension->escapeString($this->connections[$connectionType], $str) . "'"; + return "'" . $this->extension->escapeString($this->connections[$connectionType->value], $str) . "'"; } /** @@ -2018,11 +1987,10 @@ class DatabaseInterface implements DbalInterface * Prepare an SQL statement for execution. * * @param string $query The query, as a string. - * @psalm-param ConnectionType $connectionType */ - public function prepare(string $query, int $connectionType = Connection::TYPE_USER): Statement|null + public function prepare(string $query, ConnectionType $connectionType = ConnectionType::User): Statement|null { - return $this->extension->prepare($this->connections[$connectionType], $query); + return $this->extension->prepare($this->connections[$connectionType->value], $query); } public function getDatabaseList(): ListDatabase @@ -2036,15 +2004,13 @@ class DatabaseInterface implements DbalInterface /** * Returns the number of warnings from the last query. - * - * @psalm-param ConnectionType $connectionType */ - private function getWarningCount(int $connectionType): int + private function getWarningCount(ConnectionType $connectionType): int { - if (! isset($this->connections[$connectionType])) { + if (! isset($this->connections[$connectionType->value])) { return 0; } - return $this->extension->getWarningCount($this->connections[$connectionType]); + return $this->extension->getWarningCount($this->connections[$connectionType->value]); } } diff --git a/src/Dbal/Connection.php b/src/Dbal/Connection.php index 858a4fc1a2..e21171ae54 100644 --- a/src/Dbal/Connection.php +++ b/src/Dbal/Connection.php @@ -4,21 +4,9 @@ declare(strict_types=1); namespace PhpMyAdmin\Dbal; -/** - * @psalm-immutable - * @psalm-type ConnectionType = Connection::TYPE_USER|Connection::TYPE_CONTROL|Connection::TYPE_AUXILIARY - */ +/** @psalm-immutable */ final class Connection { - /** User connection. */ - public const TYPE_USER = 0; - - /** Control user connection. */ - public const TYPE_CONTROL = 1; - - /** Auxiliary connection. Used for example for replication setup. */ - public const TYPE_AUXILIARY = 2; - public function __construct(public object $connection) { } diff --git a/src/Dbal/ConnectionType.php b/src/Dbal/ConnectionType.php new file mode 100644 index 0000000000..fc3a3928b3 --- /dev/null +++ b/src/Dbal/ConnectionType.php @@ -0,0 +1,17 @@ + tables names */ - public function getTables(string $database, int $connectionType = Connection::TYPE_USER): array; + public function getTables(string $database, ConnectionType $connectionType = ConnectionType::User): array; /** * returns array of all tables in given db or dbs @@ -96,7 +90,6 @@ interface DbalInterface * @param string $sortBy table attribute to sort by * @param string $sortOrder direction to sort (ASC or DESC) * @param string|null $tableType whether table or view - * @psalm-param ConnectionType $connectionType * * @return mixed[] list of tables in given db(s) * @@ -111,7 +104,7 @@ interface DbalInterface string $sortBy = 'Name', string $sortOrder = 'ASC', string|null $tableType = null, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, ): array; /** @@ -132,7 +125,6 @@ interface DbalInterface * @param string $sortOrder ASC or DESC * @param int $limitOffset starting offset for LIMIT * @param bool|int $limitCount row count for LIMIT or true for $cfg['MaxDbList'] - * @psalm-param ConnectionType $connectionType * * @return mixed[] * @@ -141,7 +133,7 @@ interface DbalInterface public function getDatabasesFull( string|null $database = null, bool $forceStats = false, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, string $sortBy = 'SCHEMA_NAME', string $sortOrder = 'ASC', int $limitOffset = 0, @@ -155,7 +147,6 @@ interface DbalInterface * @param string|null $database name of database * @param string|null $table name of table to retrieve columns from * @param string|null $column name of specific column - * @psalm-param ConnectionType $connectionType * * @return mixed[] */ @@ -163,7 +154,7 @@ interface DbalInterface string|null $database = null, string|null $table = null, string|null $column = null, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, ): array; /** @@ -173,7 +164,6 @@ interface DbalInterface * @param string $table name of table to retrieve columns from * @param string $column name of column * @param T $full whether to return full info or only column names - * @psalm-param ConnectionType $connectionType * * @psalm-return (T is true ? ColumnFull : Column)|null * @@ -184,7 +174,7 @@ interface DbalInterface string $table, string $column, bool $full = false, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, ): ColumnFull|Column|null; /** @@ -193,7 +183,6 @@ interface DbalInterface * @param string $database name of database * @param string $table name of table to retrieve columns from * @param T $full whether to return full info or only column names - * @psalm-param ConnectionType $connectionType * * @return ColumnFull[]|Column[] * @psalm-return (T is true ? ColumnFull[] : Column[]) @@ -204,7 +193,7 @@ interface DbalInterface string $database, string $table, bool $full = false, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, ): array; /** @@ -212,14 +201,13 @@ interface DbalInterface * * @param string $database name of database * @param string $table name of table to retrieve columns from - * @psalm-param ConnectionType $connectionType * * @return string[] */ public function getColumnNames( string $database, string $table, - int $connectionType = Connection::TYPE_USER, + ConnectionType $connectionType = ConnectionType::User, ): array; /** @@ -227,7 +215,6 @@ interface DbalInterface * * @param string $database name of database * @param string $table name of the table whose indexes are to be retrieved - * @psalm-param ConnectionType $connectionType * * @return array> * @psalm-return arraydbi->quoteString($template->getUsername(), Connection::TYPE_CONTROL), - $this->dbi->quoteString($template->getExportType(), Connection::TYPE_CONTROL), - $this->dbi->quoteString($template->getName(), Connection::TYPE_CONTROL), - $this->dbi->quoteString($template->getData(), Connection::TYPE_CONTROL), + $this->dbi->quoteString($template->getUsername(), ConnectionType::ControlUser), + $this->dbi->quoteString($template->getExportType(), ConnectionType::ControlUser), + $this->dbi->quoteString($template->getName(), ConnectionType::ControlUser), + $this->dbi->quoteString($template->getData(), ConnectionType::ControlUser), ); $result = $this->dbi->tryQueryAsControlUser($query); if ($result !== false) { return ''; } - return $this->dbi->getError(Connection::TYPE_CONTROL); + return $this->dbi->getError(ConnectionType::ControlUser); } public function delete(DatabaseName $db, TableName $table, string $user, int $id): string @@ -45,14 +45,14 @@ final class TemplateModel Util::backquote($db), Util::backquote($table), $id, - $this->dbi->quoteString($user, Connection::TYPE_CONTROL), + $this->dbi->quoteString($user, ConnectionType::ControlUser), ); $result = $this->dbi->tryQueryAsControlUser($query); if ($result !== false) { return ''; } - return $this->dbi->getError(Connection::TYPE_CONTROL); + return $this->dbi->getError(ConnectionType::ControlUser); } public function load(DatabaseName $db, TableName $table, string $user, int $id): Template|string @@ -62,11 +62,11 @@ final class TemplateModel Util::backquote($db), Util::backquote($table), $id, - $this->dbi->quoteString($user, Connection::TYPE_CONTROL), + $this->dbi->quoteString($user, ConnectionType::ControlUser), ); $result = $this->dbi->tryQueryAsControlUser($query); if ($result === false) { - return $this->dbi->getError(Connection::TYPE_CONTROL); + return $this->dbi->getError(ConnectionType::ControlUser); } $data = []; @@ -89,16 +89,16 @@ final class TemplateModel 'UPDATE %s.%s SET `template_data` = %s WHERE `id` = %d AND `username` = %s;', Util::backquote($db), Util::backquote($table), - $this->dbi->quoteString($template->getData(), Connection::TYPE_CONTROL), + $this->dbi->quoteString($template->getData(), ConnectionType::ControlUser), $template->getId(), - $this->dbi->quoteString($template->getUsername(), Connection::TYPE_CONTROL), + $this->dbi->quoteString($template->getUsername(), ConnectionType::ControlUser), ); $result = $this->dbi->tryQueryAsControlUser($query); if ($result !== false) { return ''; } - return $this->dbi->getError(Connection::TYPE_CONTROL); + return $this->dbi->getError(ConnectionType::ControlUser); } /** @return Template[]|string */ @@ -108,12 +108,12 @@ final class TemplateModel 'SELECT * FROM %s.%s WHERE `username` = %s AND `export_type` = %s ORDER BY `template_name`;', Util::backquote($db), Util::backquote($table), - $this->dbi->quoteString($user, Connection::TYPE_CONTROL), - $this->dbi->quoteString($exportType, Connection::TYPE_CONTROL), + $this->dbi->quoteString($user, ConnectionType::ControlUser), + $this->dbi->quoteString($exportType, ConnectionType::ControlUser), ); $result = $this->dbi->tryQueryAsControlUser($query); if ($result === false) { - return $this->dbi->getError(Connection::TYPE_CONTROL); + return $this->dbi->getError(ConnectionType::ControlUser); } $templates = []; diff --git a/src/Favorites/RecentFavoriteTables.php b/src/Favorites/RecentFavoriteTables.php index 9f9432af7a..d54648ed7b 100644 --- a/src/Favorites/RecentFavoriteTables.php +++ b/src/Favorites/RecentFavoriteTables.php @@ -11,7 +11,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\DbTableExists; use PhpMyAdmin\Message; use PhpMyAdmin\Template; @@ -124,7 +124,7 @@ class RecentFavoriteTables // Read from phpMyAdmin database, if recent tables is not in session $sqlQuery = 'SELECT `tables` FROM ' . $this->getPmaTable() . ' WHERE `username` = ' - . $this->dbi->quoteString(Config::getInstance()->selectedServer['user'], Connection::TYPE_CONTROL); + . $this->dbi->quoteString(Config::getInstance()->selectedServer['user'], ConnectionType::ControlUser); $result = $this->dbi->tryQueryAsControlUser($sqlQuery); if ($result !== false) { @@ -149,7 +149,7 @@ class RecentFavoriteTables . ' VALUES (' . $this->dbi->quoteString($username) . ', ' . $this->dbi->quoteString(json_encode($this->tables)) . ')'; - $success = $this->dbi->tryQuery($sqlQuery, Connection::TYPE_CONTROL); + $success = $this->dbi->tryQuery($sqlQuery, ConnectionType::ControlUser); if ($success === false) { $message = Message::error(match ($this->tableType) { @@ -158,7 +158,7 @@ class RecentFavoriteTables }); $message->addMessage( - Message::rawError($this->dbi->getError(Connection::TYPE_CONTROL)), + Message::rawError($this->dbi->getError(ConnectionType::ControlUser)), '

', ); diff --git a/src/Http/Middleware/Authentication.php b/src/Http/Middleware/Authentication.php index 7f03d15002..b8c4675ec5 100644 --- a/src/Http/Middleware/Authentication.php +++ b/src/Http/Middleware/Authentication.php @@ -10,7 +10,7 @@ use PhpMyAdmin\Config\Settings\Server; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\Container\ContainerBuilder; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Exceptions\AuthenticationPluginException; use PhpMyAdmin\Exceptions\ExitException; use PhpMyAdmin\Http\Factory\ResponseFactory; @@ -105,11 +105,11 @@ final class Authentication implements MiddlewareInterface */ $controlConnection = null; if ($currentServer->controlUser !== '') { - $controlConnection = $dbi->connect($currentServer, Connection::TYPE_CONTROL); + $controlConnection = $dbi->connect($currentServer, ConnectionType::ControlUser); } // Connects to the server (validates user's login) - $userConnection = $dbi->connect($currentServer, Connection::TYPE_USER); + $userConnection = $dbi->connect($currentServer, ConnectionType::User); if ($userConnection === null) { $auth->showFailure('mysql-denied'); } @@ -122,6 +122,6 @@ final class Authentication implements MiddlewareInterface * Open separate connection for control queries, this is needed to avoid problems with table locking used in * main connection and phpMyAdmin issuing queries to configuration storage, which is not locked by that time. */ - $dbi->connect($currentServer, Connection::TYPE_USER, Connection::TYPE_CONTROL); + $dbi->connect($currentServer, ConnectionType::User, ConnectionType::ControlUser); } } diff --git a/src/Menu.php b/src/Menu.php index 04347c6f43..59a5245413 100644 --- a/src/Menu.php +++ b/src/Menu.php @@ -8,7 +8,7 @@ declare(strict_types=1); namespace PhpMyAdmin; use PhpMyAdmin\ConfigStorage\Relation; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Query\Utilities; use PhpMyAdmin\Routing\Routing; use PhpMyAdmin\Tracking\Tracker; @@ -117,7 +117,7 @@ class Menu . " AND `tab` LIKE '" . $level . "%'" . ' AND `usergroup` = (SELECT usergroup FROM ' . $userTable . ' WHERE `username` = ' - . $this->dbi->quoteString($config->selectedServer['user'], Connection::TYPE_CONTROL) . ')'; + . $this->dbi->quoteString($config->selectedServer['user'], ConnectionType::ControlUser) . ')'; $result = $this->dbi->tryQueryAsControlUser($sqlQuery); if ($result) { diff --git a/src/Navigation/Navigation.php b/src/Navigation/Navigation.php index a3bb9d4cba..efff39fc6b 100644 --- a/src/Navigation/Navigation.php +++ b/src/Navigation/Navigation.php @@ -14,7 +14,7 @@ use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\Container\ContainerBuilder; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Sanitize; use PhpMyAdmin\Server\Select; @@ -154,10 +154,10 @@ class Navigation $sqlQuery = 'INSERT INTO ' . $navTable . '(`username`, `item_name`, `item_type`, `db_name`, `table_name`)' . ' VALUES (' - . $this->dbi->quoteString(Config::getInstance()->selectedServer['user'], Connection::TYPE_CONTROL) . ',' - . $this->dbi->quoteString($itemName, Connection::TYPE_CONTROL) . ',' - . $this->dbi->quoteString($itemType, Connection::TYPE_CONTROL) . ',' - . $this->dbi->quoteString($dbName, Connection::TYPE_CONTROL) . ',' + . $this->dbi->quoteString(Config::getInstance()->selectedServer['user'], ConnectionType::ControlUser) . ',' + . $this->dbi->quoteString($itemName, ConnectionType::ControlUser) . ',' + . $this->dbi->quoteString($itemType, ConnectionType::ControlUser) . ',' + . $this->dbi->quoteString($dbName, ConnectionType::ControlUser) . ',' . "'')"; $this->dbi->tryQueryAsControlUser($sqlQuery); } @@ -185,10 +185,10 @@ class Navigation $sqlQuery = 'DELETE FROM ' . $navTable . ' WHERE' . ' `username`=' - . $this->dbi->quoteString(Config::getInstance()->selectedServer['user'], Connection::TYPE_CONTROL) - . ' AND `item_name`=' . $this->dbi->quoteString($itemName, Connection::TYPE_CONTROL) - . ' AND `item_type`=' . $this->dbi->quoteString($itemType, Connection::TYPE_CONTROL) - . ' AND `db_name`=' . $this->dbi->quoteString($dbName, Connection::TYPE_CONTROL); + . $this->dbi->quoteString(Config::getInstance()->selectedServer['user'], ConnectionType::ControlUser) + . ' AND `item_name`=' . $this->dbi->quoteString($itemName, ConnectionType::ControlUser) + . ' AND `item_type`=' . $this->dbi->quoteString($itemType, ConnectionType::ControlUser) + . ' AND `db_name`=' . $this->dbi->quoteString($dbName, ConnectionType::ControlUser); $this->dbi->tryQueryAsControlUser($sqlQuery); } @@ -231,8 +231,8 @@ class Navigation . '.' . Util::backquote($navigationItemsHidingFeature->navigationHiding); $sqlQuery = 'SELECT `item_name`, `item_type` FROM ' . $navTable . ' WHERE `username`=' - . $this->dbi->quoteString(Config::getInstance()->selectedServer['user'], Connection::TYPE_CONTROL) - . ' AND `db_name`=' . $this->dbi->quoteString($database, Connection::TYPE_CONTROL) + . $this->dbi->quoteString(Config::getInstance()->selectedServer['user'], ConnectionType::ControlUser) + . ' AND `db_name`=' . $this->dbi->quoteString($database, ConnectionType::ControlUser) . " AND `table_name`=''"; $result = $this->dbi->tryQueryAsControlUser($sqlQuery); diff --git a/src/Navigation/Nodes/Node.php b/src/Navigation/Nodes/Node.php index 986926e293..885e8b37af 100644 --- a/src/Navigation/Nodes/Node.php +++ b/src/Navigation/Nodes/Node.php @@ -11,7 +11,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\ConfigStorage\Features\NavigationItemsHidingFeature; use PhpMyAdmin\ConfigStorage\RelationParameters; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Navigation\NodeType; use PhpMyAdmin\UserPrivileges; @@ -631,7 +631,7 @@ class Node . $dbi->quoteString(Config::getInstance()->selectedServer['user']) . ' GROUP BY `db_name`'; - return $dbi->fetchResult($sqlQuery, 'db_name', 'count', Connection::TYPE_CONTROL); + return $dbi->fetchResult($sqlQuery, 'db_name', 'count', ConnectionType::ControlUser); } return null; diff --git a/src/Navigation/Nodes/NodeDatabase.php b/src/Navigation/Nodes/NodeDatabase.php index e967f0e7ff..b576cee613 100644 --- a/src/Navigation/Nodes/NodeDatabase.php +++ b/src/Navigation/Nodes/NodeDatabase.php @@ -11,7 +11,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\ConfigStorage\Features\NavigationItemsHidingFeature; use PhpMyAdmin\ConfigStorage\RelationParameters; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Dbal\ResultInterface; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Url; @@ -306,11 +306,11 @@ class NodeDatabase extends Node $dbi = DatabaseInterface::getInstance(); $sqlQuery = 'SELECT `item_name` FROM ' . $navTable . ' WHERE `username`=' - . $dbi->quoteString($relationParameters->user, Connection::TYPE_CONTROL) + . $dbi->quoteString($relationParameters->user, ConnectionType::ControlUser) . ' AND `item_type`=' - . $dbi->quoteString($type, Connection::TYPE_CONTROL) + . $dbi->quoteString($type, ConnectionType::ControlUser) . ' AND `db_name`=' - . $dbi->quoteString($this->realName, Connection::TYPE_CONTROL); + . $dbi->quoteString($this->realName, ConnectionType::ControlUser); $result = $dbi->tryQueryAsControlUser($sqlQuery); $hiddenItems = []; if ($result instanceof ResultInterface) { diff --git a/src/Plugins/Export/ExportCsv.php b/src/Plugins/Export/ExportCsv.php index 86d94b22c4..804597145f 100644 --- a/src/Plugins/Export/ExportCsv.php +++ b/src/Plugins/Export/ExportCsv.php @@ -8,7 +8,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Plugins\Export; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Plugins\ExportPlugin; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyRootGroup; @@ -213,7 +213,7 @@ class ExportCsv extends ExportPlugin /** * Gets the data from the database */ - $result = $dbi->query($sqlQuery, Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED); + $result = $dbi->query($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED); // If required, get fields name at the first line if (isset($GLOBALS['csv_columns']) && $GLOBALS['csv_columns']) { diff --git a/src/Plugins/Export/ExportHtmlword.php b/src/Plugins/Export/ExportHtmlword.php index 4695189055..faa9cd4a8e 100644 --- a/src/Plugins/Export/ExportHtmlword.php +++ b/src/Plugins/Export/ExportHtmlword.php @@ -9,7 +9,7 @@ namespace PhpMyAdmin\Plugins\Export; use PhpMyAdmin\Column; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Plugins\ExportPlugin; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyRootGroup; @@ -201,7 +201,7 @@ class ExportHtmlword extends ExportPlugin /** * Gets the data from the database */ - $result = $dbi->query($sqlQuery, Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED); + $result = $dbi->query($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED); // If required, get fields name at the first line if (isset($GLOBALS['htmlword_columns'])) { diff --git a/src/Plugins/Export/ExportJson.php b/src/Plugins/Export/ExportJson.php index e28b12b547..ace22ad4a5 100644 --- a/src/Plugins/Export/ExportJson.php +++ b/src/Plugins/Export/ExportJson.php @@ -8,7 +8,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Plugins\Export; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\FieldMetadata; use PhpMyAdmin\Plugins\ExportPlugin; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup; @@ -233,7 +233,7 @@ class ExportJson extends ExportPlugin return false; } - $result = $dbi->query($sqlQuery, Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED); + $result = $dbi->query($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED); $columnsCnt = $result->numFields(); $fieldsMeta = $dbi->getFieldsMeta($result); diff --git a/src/Plugins/Export/ExportLatex.php b/src/Plugins/Export/ExportLatex.php index d74ee2eb36..1ae6e47aef 100644 --- a/src/Plugins/Export/ExportLatex.php +++ b/src/Plugins/Export/ExportLatex.php @@ -9,7 +9,7 @@ namespace PhpMyAdmin\Plugins\Export; use PhpMyAdmin\Config; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Plugins\ExportPlugin; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyRootGroup; @@ -287,7 +287,7 @@ class ExportLatex extends ExportPlugin $this->initAlias($aliases, $dbAlias, $tableAlias); $dbi = DatabaseInterface::getInstance(); - $result = $dbi->tryQuery($sqlQuery, Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED); + $result = $dbi->tryQuery($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED); $columnsCnt = $result->numFields(); $columns = []; diff --git a/src/Plugins/Export/ExportMediawiki.php b/src/Plugins/Export/ExportMediawiki.php index c042029a09..487b4d9193 100644 --- a/src/Plugins/Export/ExportMediawiki.php +++ b/src/Plugins/Export/ExportMediawiki.php @@ -8,7 +8,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Plugins\Export; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Plugins\ExportPlugin; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyRootGroup; @@ -300,7 +300,7 @@ class ExportMediawiki extends ExportPlugin } // Get the table data from the database - $result = $dbi->query($sqlQuery, Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED); + $result = $dbi->query($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED); $fieldsCnt = $result->numFields(); while ($row = $result->fetchRow()) { diff --git a/src/Plugins/Export/ExportOds.php b/src/Plugins/Export/ExportOds.php index 1ccbcefdba..519f3233ac 100644 --- a/src/Plugins/Export/ExportOds.php +++ b/src/Plugins/Export/ExportOds.php @@ -8,7 +8,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Plugins\Export; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\FieldMetadata; use PhpMyAdmin\OpenDocument; use PhpMyAdmin\Plugins\ExportPlugin; @@ -204,7 +204,7 @@ class ExportOds extends ExportPlugin $this->initAlias($aliases, $dbAlias, $tableAlias); $dbi = DatabaseInterface::getInstance(); // Gets the data from the database - $result = $dbi->query($sqlQuery, Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED); + $result = $dbi->query($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED); $fieldsCnt = $result->numFields(); $fieldsMeta = $dbi->getFieldsMeta($result); diff --git a/src/Plugins/Export/ExportOdt.php b/src/Plugins/Export/ExportOdt.php index cce7f1c328..0171e511f3 100644 --- a/src/Plugins/Export/ExportOdt.php +++ b/src/Plugins/Export/ExportOdt.php @@ -9,7 +9,7 @@ namespace PhpMyAdmin\Plugins\Export; use PhpMyAdmin\Column; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\OpenDocument; use PhpMyAdmin\Plugins\ExportPlugin; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup; @@ -230,7 +230,7 @@ class ExportOdt extends ExportPlugin $this->initAlias($aliases, $dbAlias, $tableAlias); $dbi = DatabaseInterface::getInstance(); // Gets the data from the database - $result = $dbi->query($sqlQuery, Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED); + $result = $dbi->query($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED); $fieldsCnt = $result->numFields(); $fieldsMeta = $dbi->getFieldsMeta($result); diff --git a/src/Plugins/Export/ExportPhparray.php b/src/Plugins/Export/ExportPhparray.php index 74ed6953e9..383be3bb91 100644 --- a/src/Plugins/Export/ExportPhparray.php +++ b/src/Plugins/Export/ExportPhparray.php @@ -8,7 +8,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Plugins\Export; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Plugins\ExportPlugin; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyRootGroup; @@ -159,7 +159,7 @@ class ExportPhparray extends ExportPlugin $this->initAlias($aliases, $dbAlias, $tableAlias); $dbi = DatabaseInterface::getInstance(); - $result = $dbi->query($sqlQuery, Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED); + $result = $dbi->query($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED); $columnsCnt = $result->numFields(); $columns = []; diff --git a/src/Plugins/Export/ExportSql.php b/src/Plugins/Export/ExportSql.php index 2ff4e64c0d..817cf1afce 100644 --- a/src/Plugins/Export/ExportSql.php +++ b/src/Plugins/Export/ExportSql.php @@ -13,7 +13,7 @@ use PhpMyAdmin\Current; use PhpMyAdmin\Database\Events; use PhpMyAdmin\Database\Routines; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Plugins\ExportPlugin; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyRootGroup; @@ -2057,7 +2057,7 @@ class ExportSql extends ExportPlugin return $this->export->outputHandler($head); } - $result = $dbi->tryQuery($sqlQuery, Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED); + $result = $dbi->tryQuery($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED); // a possible error: the table has crashed $tmpError = $dbi->getError(); if ($tmpError !== '') { diff --git a/src/Plugins/Export/ExportTexytext.php b/src/Plugins/Export/ExportTexytext.php index 98befb3d9a..332d2dc189 100644 --- a/src/Plugins/Export/ExportTexytext.php +++ b/src/Plugins/Export/ExportTexytext.php @@ -9,7 +9,7 @@ namespace PhpMyAdmin\Plugins\Export; use PhpMyAdmin\Column; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Plugins\ExportPlugin; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyRootGroup; @@ -181,7 +181,7 @@ class ExportTexytext extends ExportPlugin /** * Gets the data from the database */ - $result = $dbi->query($sqlQuery, Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED); + $result = $dbi->query($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED); // If required, get fields name at the first line if (isset($GLOBALS[$GLOBALS['what'] . '_columns'])) { diff --git a/src/Plugins/Export/ExportXml.php b/src/Plugins/Export/ExportXml.php index 5d6ab6d60b..c2424b7603 100644 --- a/src/Plugins/Export/ExportXml.php +++ b/src/Plugins/Export/ExportXml.php @@ -9,7 +9,7 @@ use PhpMyAdmin\Current; use PhpMyAdmin\Database\Events; use PhpMyAdmin\Database\Routines; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Plugins\ExportPlugin; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyRootGroup; @@ -433,7 +433,7 @@ class ExportXml extends ExportPlugin $tableAlias = $table; $this->initAlias($aliases, $dbAlias, $tableAlias); if (isset($GLOBALS['xml_export_contents']) && $GLOBALS['xml_export_contents']) { - $result = $dbi->query($sqlQuery, Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED); + $result = $dbi->query($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED); $columnsCnt = $result->numFields(); $columns = $result->getFieldNames(); diff --git a/src/Plugins/Export/ExportYaml.php b/src/Plugins/Export/ExportYaml.php index e4888ad6db..c4b7e82b83 100644 --- a/src/Plugins/Export/ExportYaml.php +++ b/src/Plugins/Export/ExportYaml.php @@ -8,7 +8,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Plugins\Export; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\FieldMetadata; use PhpMyAdmin\Plugins\ExportPlugin; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup; @@ -133,7 +133,7 @@ class ExportYaml extends ExportPlugin $tableAlias = $table; $this->initAlias($aliases, $dbAlias, $tableAlias); $dbi = DatabaseInterface::getInstance(); - $result = $dbi->query($sqlQuery, Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED); + $result = $dbi->query($sqlQuery, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED); $columnsCnt = $result->numFields(); $fieldsMeta = $dbi->getFieldsMeta($result); diff --git a/src/Plugins/Export/Helpers/Pdf.php b/src/Plugins/Export/Helpers/Pdf.php index cb61816d19..7eb8dc1a3c 100644 --- a/src/Plugins/Export/Helpers/Pdf.php +++ b/src/Plugins/Export/Helpers/Pdf.php @@ -9,7 +9,7 @@ namespace PhpMyAdmin\Plugins\Export\Helpers; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Dbal\ResultInterface; use PhpMyAdmin\FieldMetadata; use PhpMyAdmin\Pdf as PdfLib; @@ -673,7 +673,7 @@ class Pdf extends PdfLib /** * Pass 1 for column widths */ - $this->results = $dbi->query($query, Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED); + $this->results = $dbi->query($query, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED); $numFields = $this->results->numFields(); $fields = $dbi->getFieldsMeta($this->results); @@ -796,7 +796,7 @@ class Pdf extends PdfLib // Pass 2 - $this->results = $dbi->query($query, Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED); + $this->results = $dbi->query($query, ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED); $this->setY($this->tMargin); $this->AddPage(); $this->setFont(PdfLib::PMA_PDF_FONT, '', 9); diff --git a/src/Plugins/Schema/Pdf/Pdf.php b/src/Plugins/Schema/Pdf/Pdf.php index ff409f2ed2..85181aa83e 100644 --- a/src/Plugins/Schema/Pdf/Pdf.php +++ b/src/Plugins/Schema/Pdf/Pdf.php @@ -9,7 +9,7 @@ namespace PhpMyAdmin\Plugins\Schema\Pdf; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Pdf as PdfLib; use PhpMyAdmin\Util; @@ -254,7 +254,7 @@ class Pdf extends PdfLib $testQuery = 'SELECT * FROM ' . Util::backquote($pdfFeature->database) . '.' . Util::backquote($pdfFeature->pdfPages) - . ' WHERE db_name = ' . $dbi->quoteString($this->db, Connection::TYPE_CONTROL) + . ' WHERE db_name = ' . $dbi->quoteString($this->db, ConnectionType::ControlUser) . ' AND page_nr = ' . $this->pageNumber; $testRs = $dbi->queryAsControlUser($testQuery); $pageDesc = (string) $testRs->fetchValue('page_descr'); diff --git a/src/Replication/Replication.php b/src/Replication/Replication.php index d86f6fefb8..2a1866f394 100644 --- a/src/Replication/Replication.php +++ b/src/Replication/Replication.php @@ -8,6 +8,7 @@ use PhpMyAdmin\Config\Settings\Server; use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Dbal\ResultInterface; use function explode; @@ -15,8 +16,6 @@ use function mb_strtoupper; /** * Replication helpers - * - * @psalm-import-type ConnectionType from Connection */ class Replication { @@ -50,12 +49,14 @@ class Replication * possible values: SQL_THREAD or IO_THREAD or null. * If it is set to null, it controls both * SQL_THREAD and IO_THREAD - * @psalm-param ConnectionType $connectionType * * @return ResultInterface|false|int output of DatabaseInterface::tryQuery */ - public function replicaControl(string $action, string|null $control, int $connectionType): ResultInterface|false|int - { + public function replicaControl( + string $action, + string|null $control, + ConnectionType $connectionType, + ): ResultInterface|false|int { $action = mb_strtoupper($action); $control = $control !== null ? mb_strtoupper($control) : ''; @@ -80,7 +81,6 @@ class Replication * @param mixed[] $pos position of mysql replication, array should contain fields File and Position * @param bool $stop shall we stop replica? * @param bool $start shall we start replica? - * @psalm-param ConnectionType $connectionType * * @return ResultInterface|false output of CHANGE MASTER mysql command */ @@ -92,7 +92,7 @@ class Replication array $pos, bool $stop, bool $start, - int $connectionType, + ConnectionType $connectionType, ): ResultInterface|false { if ($stop) { $this->replicaControl('STOP', null, $connectionType); @@ -142,19 +142,17 @@ class Replication // 5th parameter set to true means that it's an auxiliary connection // and we must not go back to login page if it fails - return $this->dbi->connect($currentServer, Connection::TYPE_AUXILIARY); + return $this->dbi->connect($currentServer, ConnectionType::Auxiliary); } /** * Fetches position and file of current binary log on primary * - * @psalm-param ConnectionType $connectionType - * * @return mixed[] an array containing File and Position in MySQL replication * on primary server, useful for {@see Replication::replicaChangePrimary()}. * @phpstan-return array{'File'?: string, 'Position'?: string} */ - public function replicaBinLogPrimary(int $connectionType): array + public function replicaBinLogPrimary(ConnectionType $connectionType): array { $data = $this->dbi->fetchResult('SHOW MASTER STATUS', null, null, $connectionType); $output = []; diff --git a/src/Replication/ReplicationGui.php b/src/Replication/ReplicationGui.php index 801f82c1cb..b6cc69df56 100644 --- a/src/Replication/ReplicationGui.php +++ b/src/Replication/ReplicationGui.php @@ -9,7 +9,7 @@ namespace PhpMyAdmin\Replication; use PhpMyAdmin\Config; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Message; use PhpMyAdmin\Query\Utilities; use PhpMyAdmin\ResponseRenderer; @@ -488,7 +488,7 @@ class ReplicationGui ); } else { // Read the current primary position - $position = $this->replication->replicaBinLogPrimary(Connection::TYPE_AUXILIARY); + $position = $this->replication->replicaBinLogPrimary(ConnectionType::Auxiliary); if ($position === []) { $_SESSION['replication']['sr_action_status'] = 'error'; @@ -507,7 +507,7 @@ class ReplicationGui $position, true, false, - Connection::TYPE_USER, + ConnectionType::User, ) ) { $_SESSION['replication']['sr_action_status'] = 'error'; @@ -528,14 +528,14 @@ class ReplicationGui public function handleRequestForReplicaServerControl(string|null $srReplicaAction, string|null $control): bool { if ($srReplicaAction === 'reset') { - $qStop = $this->replication->replicaControl('STOP', null, Connection::TYPE_USER); + $qStop = $this->replication->replicaControl('STOP', null, ConnectionType::User); $qReset = DatabaseInterface::getInstance()->tryQuery('RESET SLAVE;'); - $qStart = $this->replication->replicaControl('START', null, Connection::TYPE_USER); + $qStart = $this->replication->replicaControl('START', null, ConnectionType::User); return $qStop !== false && $qStop !== -1 && $qReset !== false && $qStart !== false && $qStart !== -1; } - $qControl = $this->replication->replicaControl($srReplicaAction, $control, Connection::TYPE_USER); + $qControl = $this->replication->replicaControl($srReplicaAction, $control, ConnectionType::User); return $qControl !== false && $qControl !== -1; } @@ -543,9 +543,9 @@ class ReplicationGui public function handleRequestForReplicaSkipError(int $srSkipErrorsCount): bool { $dbi = DatabaseInterface::getInstance(); - $qStop = $this->replication->replicaControl('STOP', null, Connection::TYPE_USER); + $qStop = $this->replication->replicaControl('STOP', null, ConnectionType::User); $qSkip = $dbi->tryQuery('SET GLOBAL SQL_SLAVE_SKIP_COUNTER = ' . $srSkipErrorsCount . ';'); - $qStart = $this->replication->replicaControl('START', null, Connection::TYPE_USER); + $qStart = $this->replication->replicaControl('START', null, ConnectionType::User); return $qStop !== false && $qStop !== -1 && $qSkip !== false && $qStart !== false && $qStart !== -1; } diff --git a/src/Server/Privileges.php b/src/Server/Privileges.php index 38cbb16035..c9eb64f77a 100644 --- a/src/Server/Privileges.php +++ b/src/Server/Privileges.php @@ -15,6 +15,7 @@ use PhpMyAdmin\Current; use PhpMyAdmin\Database\Routines; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Dbal\ResultInterface; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Html\MySQLDocumentation; @@ -418,20 +419,20 @@ class Privileges . '.' . Util::backquote($configurableMenusFeature->users); $sqlQuery = 'SELECT `usergroup` FROM ' . $userTable - . ' WHERE `username` = ' . $this->dbi->quoteString($username, Connection::TYPE_CONTROL); - $oldUserGroup = $this->dbi->fetchValue($sqlQuery, 0, Connection::TYPE_CONTROL); + . ' WHERE `username` = ' . $this->dbi->quoteString($username, ConnectionType::ControlUser); + $oldUserGroup = $this->dbi->fetchValue($sqlQuery, 0, ConnectionType::ControlUser); if ($oldUserGroup === false) { $updQuery = 'INSERT INTO ' . $userTable . '(`username`, `usergroup`)' - . ' VALUES (' . $this->dbi->quoteString($username, Connection::TYPE_CONTROL) . ', ' - . $this->dbi->quoteString($userGroup, Connection::TYPE_CONTROL) . ')'; + . ' VALUES (' . $this->dbi->quoteString($username, ConnectionType::ControlUser) . ', ' + . $this->dbi->quoteString($userGroup, ConnectionType::ControlUser) . ')'; } elseif ($userGroup === '') { $updQuery = 'DELETE FROM ' . $userTable - . ' WHERE `username`=' . $this->dbi->quoteString($username, Connection::TYPE_CONTROL); + . ' WHERE `username`=' . $this->dbi->quoteString($username, ConnectionType::ControlUser); } elseif ($oldUserGroup != $userGroup) { $updQuery = 'UPDATE ' . $userTable - . ' SET `usergroup`=' . $this->dbi->quoteString($userGroup, Connection::TYPE_CONTROL) - . ' WHERE `username`=' . $this->dbi->quoteString($username, Connection::TYPE_CONTROL); + . ' SET `usergroup`=' . $this->dbi->quoteString($userGroup, ConnectionType::ControlUser) + . ' WHERE `username`=' . $this->dbi->quoteString($username, ConnectionType::ControlUser); } else { return; } @@ -1310,7 +1311,7 @@ class Privileges . '.' . Util::backquote($configurableMenusFeature->userGroups); $sqlQuery = 'SELECT COUNT(*) FROM ' . $userGroupTable; - return (int) $this->dbi->fetchValue($sqlQuery, 0, Connection::TYPE_CONTROL); + return (int) $this->dbi->fetchValue($sqlQuery, 0, ConnectionType::ControlUser); } /** @@ -1333,7 +1334,7 @@ class Privileges . ' WHERE `username` = \'' . $username . '\'' . ' LIMIT 1'; - $usergroup = $this->dbi->fetchValue($sqlQuery, 0, Connection::TYPE_CONTROL); + $usergroup = $this->dbi->fetchValue($sqlQuery, 0, ConnectionType::ControlUser); if ($usergroup === false) { return null; diff --git a/src/Table/Table.php b/src/Table/Table.php index 87ff8a7a09..11a2d27e5b 100644 --- a/src/Table/Table.php +++ b/src/Table/Table.php @@ -11,7 +11,7 @@ use PhpMyAdmin\ConfigStorage\Features\UiPreferencesFeature; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\FieldMetadata; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Html\MySQLDocumentation; @@ -804,14 +804,14 @@ class Table implements Stringable $whereParts = []; foreach ($whereFields as $where => $value) { $whereParts[] = Util::backquote((string) $where) . ' = ' - . $dbi->quoteString((string) $value, Connection::TYPE_CONTROL); + . $dbi->quoteString((string) $value, ConnectionType::ControlUser); } $newParts = []; $newValueParts = []; foreach ($newFields as $where => $value) { $newParts[] = Util::backquote((string) $where); - $newValueParts[] = $dbi->quoteString((string) $value, Connection::TYPE_CONTROL); + $newValueParts[] = $dbi->quoteString((string) $value, ConnectionType::ControlUser); } $tableCopyQuery = ' @@ -831,7 +831,7 @@ class Table implements Stringable continue; } - $valueParts[] = $dbi->quoteString($val, Connection::TYPE_CONTROL); + $valueParts[] = $dbi->quoteString($val, ConnectionType::ControlUser); } $newTableQuery = 'INSERT IGNORE INTO ' @@ -1210,9 +1210,9 @@ class Table implements Stringable . '.' . Util::backquote($relationParameters->columnCommentsFeature->columnInfo) . ' WHERE ' - . ' db_name = ' . $dbi->quoteString($sourceDb, Connection::TYPE_CONTROL) + . ' db_name = ' . $dbi->quoteString($sourceDb, ConnectionType::ControlUser) . ' AND ' - . ' table_name = ' . $dbi->quoteString($sourceTable, Connection::TYPE_CONTROL), + . ' table_name = ' . $dbi->quoteString($sourceTable, ConnectionType::ControlUser), ); // Write every comment as new copied entry. [MIME] @@ -1224,15 +1224,16 @@ class Table implements Stringable . ($relationParameters->browserTransformationFeature !== null ? ', mimetype, transformation, transformation_options' : '') - . ') VALUES(' . $dbi->quoteString($targetDb, Connection::TYPE_CONTROL) - . ',' . $dbi->quoteString($targetTable, Connection::TYPE_CONTROL) . ',' - . $dbi->quoteString($commentsCopyRow['column_name'], Connection::TYPE_CONTROL) + . ') VALUES(' . $dbi->quoteString($targetDb, ConnectionType::ControlUser) + . ',' . $dbi->quoteString($targetTable, ConnectionType::ControlUser) . ',' + . $dbi->quoteString($commentsCopyRow['column_name'], ConnectionType::ControlUser) . ',' - . $dbi->quoteString($commentsCopyRow['comment'], Connection::TYPE_CONTROL) + . $dbi->quoteString($commentsCopyRow['comment'], ConnectionType::ControlUser) . ($relationParameters->browserTransformationFeature !== null - ? ',' . $dbi->quoteString($commentsCopyRow['mimetype'], Connection::TYPE_CONTROL) - . ',' . $dbi->quoteString($commentsCopyRow['transformation'], Connection::TYPE_CONTROL) - . ',' . $dbi->quoteString($commentsCopyRow['transformation_options'], Connection::TYPE_CONTROL) + ? ',' . $dbi->quoteString($commentsCopyRow['mimetype'], ConnectionType::ControlUser) + . ',' . $dbi->quoteString($commentsCopyRow['transformation'], ConnectionType::ControlUser) + . ',' + . $dbi->quoteString($commentsCopyRow['transformation_options'], ConnectionType::ControlUser) : '') . ')'; $dbi->queryAsControlUser($newCommentQuery); @@ -1581,9 +1582,9 @@ class Table implements Stringable 'SELECT `prefs` FROM %s.%s WHERE `username` = %s AND `db_name` = %s AND `table_name` = %s', Util::backquote($uiPreferencesFeature->database), Util::backquote($uiPreferencesFeature->tableUiPrefs), - $this->dbi->quoteString(Config::getInstance()->selectedServer['user'], Connection::TYPE_CONTROL), - $this->dbi->quoteString($this->dbName, Connection::TYPE_CONTROL), - $this->dbi->quoteString($this->name, Connection::TYPE_CONTROL), + $this->dbi->quoteString(Config::getInstance()->selectedServer['user'], ConnectionType::ControlUser), + $this->dbi->quoteString($this->dbName, ConnectionType::ControlUser), + $this->dbi->quoteString($this->name, ConnectionType::ControlUser), ); $value = $this->dbi->queryAsControlUser($sqlQuery)->fetchValue(); @@ -1608,19 +1609,19 @@ class Table implements Stringable $username = $config->selectedServer['user']; $sqlQuery = ' REPLACE INTO ' . $table . ' (username, db_name, table_name, prefs) VALUES (' - . $this->dbi->quoteString($username, Connection::TYPE_CONTROL) . ', ' - . $this->dbi->quoteString($this->dbName, Connection::TYPE_CONTROL) . ', ' - . $this->dbi->quoteString($this->name, Connection::TYPE_CONTROL) . ', ' - . $this->dbi->quoteString((string) json_encode($this->uiprefs), Connection::TYPE_CONTROL) . ')'; + . $this->dbi->quoteString($username, ConnectionType::ControlUser) . ', ' + . $this->dbi->quoteString($this->dbName, ConnectionType::ControlUser) . ', ' + . $this->dbi->quoteString($this->name, ConnectionType::ControlUser) . ', ' + . $this->dbi->quoteString((string) json_encode($this->uiprefs), ConnectionType::ControlUser) . ')'; - $success = $this->dbi->tryQuery($sqlQuery, Connection::TYPE_CONTROL); + $success = $this->dbi->tryQuery($sqlQuery, ConnectionType::ControlUser); if (! $success) { $message = Message::error( __('Could not save table UI preferences!'), ); $message->addMessage( - Message::rawError($this->dbi->getError(Connection::TYPE_CONTROL)), + Message::rawError($this->dbi->getError(ConnectionType::ControlUser)), '

', ); @@ -1635,7 +1636,7 @@ class Table implements Stringable if ($rowsCount > $maxRows) { $numRowsToDelete = $rowsCount - $maxRows; $sqlQuery = ' DELETE FROM ' . $table . ' ORDER BY last_update ASC LIMIT ' . $numRowsToDelete; - $success = $this->dbi->tryQuery($sqlQuery, Connection::TYPE_CONTROL); + $success = $this->dbi->tryQuery($sqlQuery, ConnectionType::ControlUser); if (! $success) { $message = Message::error(sprintf( @@ -1643,7 +1644,7 @@ class Table implements Stringable MySQLDocumentation::showDocumentation('config', 'cfg_Servers_MaxTableUiprefs'), )); $message->addMessage( - Message::rawError($this->dbi->getError(Connection::TYPE_CONTROL)), + Message::rawError($this->dbi->getError(ConnectionType::ControlUser)), '

', ); @@ -1893,9 +1894,9 @@ class Table implements Stringable . Util::backquote($displayFeature->database) . '.' . Util::backquote($displayFeature->tableInfo) . '(db_name, table_name, display_field) VALUES(' - . $this->dbi->quoteString($this->dbName, Connection::TYPE_CONTROL) . ',' - . $this->dbi->quoteString($this->name, Connection::TYPE_CONTROL) . ',' - . $this->dbi->quoteString($displayField, Connection::TYPE_CONTROL) . ')'; + . $this->dbi->quoteString($this->dbName, ConnectionType::ControlUser) . ',' + . $this->dbi->quoteString($this->name, ConnectionType::ControlUser) . ',' + . $this->dbi->quoteString($displayField, ConnectionType::ControlUser) . ')'; } $this->dbi->queryAsControlUser($updQuery); @@ -1933,12 +1934,12 @@ class Table implements Stringable . '(master_db, master_table, master_field, foreign_db,' . ' foreign_table, foreign_field)' . ' values(' - . $this->dbi->quoteString($this->dbName, Connection::TYPE_CONTROL) . ', ' - . $this->dbi->quoteString($this->name, Connection::TYPE_CONTROL) . ', ' - . $this->dbi->quoteString($masterField, Connection::TYPE_CONTROL) . ', ' - . $this->dbi->quoteString($foreignDb, Connection::TYPE_CONTROL) . ', ' - . $this->dbi->quoteString($foreignTable, Connection::TYPE_CONTROL) . ',' - . $this->dbi->quoteString($foreignField, Connection::TYPE_CONTROL) . ')'; + . $this->dbi->quoteString($this->dbName, ConnectionType::ControlUser) . ', ' + . $this->dbi->quoteString($this->name, ConnectionType::ControlUser) . ', ' + . $this->dbi->quoteString($masterField, ConnectionType::ControlUser) . ', ' + . $this->dbi->quoteString($foreignDb, ConnectionType::ControlUser) . ', ' + . $this->dbi->quoteString($foreignTable, ConnectionType::ControlUser) . ',' + . $this->dbi->quoteString($foreignField, ConnectionType::ControlUser) . ')'; } elseif ( $existrel[$masterField]['foreign_db'] != $foreignDb || $existrel[$masterField]['foreign_table'] != $foreignTable @@ -1948,28 +1949,28 @@ class Table implements Stringable . Util::backquote($relationFeature->database) . '.' . Util::backquote($relationFeature->relation) . ' SET foreign_db = ' - . $this->dbi->quoteString($foreignDb, Connection::TYPE_CONTROL) . ', ' + . $this->dbi->quoteString($foreignDb, ConnectionType::ControlUser) . ', ' . ' foreign_table = ' - . $this->dbi->quoteString($foreignTable, Connection::TYPE_CONTROL) . ', ' + . $this->dbi->quoteString($foreignTable, ConnectionType::ControlUser) . ', ' . ' foreign_field = ' - . $this->dbi->quoteString($foreignField, Connection::TYPE_CONTROL) . ' ' + . $this->dbi->quoteString($foreignField, ConnectionType::ControlUser) . ' ' . ' WHERE master_db = ' - . $this->dbi->quoteString($this->dbName, Connection::TYPE_CONTROL) + . $this->dbi->quoteString($this->dbName, ConnectionType::ControlUser) . ' AND master_table = ' - . $this->dbi->quoteString($this->name, Connection::TYPE_CONTROL) + . $this->dbi->quoteString($this->name, ConnectionType::ControlUser) . ' AND master_field = ' - . $this->dbi->quoteString($masterField, Connection::TYPE_CONTROL); + . $this->dbi->quoteString($masterField, ConnectionType::ControlUser); } } elseif (isset($existrel[$masterField])) { $updQuery = 'DELETE FROM ' . Util::backquote($relationFeature->database) . '.' . Util::backquote($relationFeature->relation) . ' WHERE master_db = ' - . $this->dbi->quoteString($this->dbName, Connection::TYPE_CONTROL) + . $this->dbi->quoteString($this->dbName, ConnectionType::ControlUser) . ' AND master_table = ' - . $this->dbi->quoteString($this->name, Connection::TYPE_CONTROL) + . $this->dbi->quoteString($this->name, ConnectionType::ControlUser) . ' AND master_field = ' - . $this->dbi->quoteString($masterField, Connection::TYPE_CONTROL); + . $this->dbi->quoteString($masterField, ConnectionType::ControlUser); } if (! isset($updQuery)) { diff --git a/src/Tracking/Tracker.php b/src/Tracking/Tracker.php index d680683617..90f5658d3b 100644 --- a/src/Tracking/Tracker.php +++ b/src/Tracking/Tracker.php @@ -12,7 +12,7 @@ use PhpMyAdmin\ConfigStorage\Features\TrackingFeature; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Plugins; use PhpMyAdmin\Plugins\Export\ExportSql; use PhpMyAdmin\SqlParser\Parser; @@ -111,11 +111,11 @@ class Tracker . ' ORDER BY version DESC LIMIT 1', Util::backquote($trackingFeature->database), Util::backquote($trackingFeature->tracking), - $dbi->quoteString($dbName, Connection::TYPE_CONTROL), - $dbi->quoteString($tableName, Connection::TYPE_CONTROL), + $dbi->quoteString($dbName, ConnectionType::ControlUser), + $dbi->quoteString($tableName, ConnectionType::ControlUser), ); - $result = $dbi->fetchValue($sqlQuery, 0, Connection::TYPE_CONTROL) == 1; + $result = $dbi->fetchValue($sqlQuery, 0, ConnectionType::ControlUser) == 1; self::$trackingCache[$dbName][$tableName] = $result; @@ -221,15 +221,15 @@ class Tracker . ' values (%s, %s, %s, %s, %s, %s, %s, %s, %s)', Util::backquote($trackingFeature->database), Util::backquote($trackingFeature->tracking), - $dbi->quoteString($dbName, Connection::TYPE_CONTROL), - $dbi->quoteString($tableName, Connection::TYPE_CONTROL), - $dbi->quoteString($version, Connection::TYPE_CONTROL), - $dbi->quoteString($date, Connection::TYPE_CONTROL), - $dbi->quoteString($date, Connection::TYPE_CONTROL), - $dbi->quoteString($snapshot, Connection::TYPE_CONTROL), - $dbi->quoteString($createSql, Connection::TYPE_CONTROL), - $dbi->quoteString("\n", Connection::TYPE_CONTROL), - $dbi->quoteString($trackingSet, Connection::TYPE_CONTROL), + $dbi->quoteString($dbName, ConnectionType::ControlUser), + $dbi->quoteString($tableName, ConnectionType::ControlUser), + $dbi->quoteString($version, ConnectionType::ControlUser), + $dbi->quoteString($date, ConnectionType::ControlUser), + $dbi->quoteString($date, ConnectionType::ControlUser), + $dbi->quoteString($snapshot, ConnectionType::ControlUser), + $dbi->quoteString($createSql, ConnectionType::ControlUser), + $dbi->quoteString("\n", ConnectionType::ControlUser), + $dbi->quoteString($trackingSet, ConnectionType::ControlUser), ); $dbi->queryAsControlUser($sqlQuery); @@ -283,15 +283,15 @@ class Tracker . ' values (%s, %s, %s, %s, %s, %s, %s, %s, %s)', Util::backquote($trackingFeature->database), Util::backquote($trackingFeature->tracking), - $dbi->quoteString($dbName, Connection::TYPE_CONTROL), - $dbi->quoteString('', Connection::TYPE_CONTROL), - $dbi->quoteString($version, Connection::TYPE_CONTROL), - $dbi->quoteString($date, Connection::TYPE_CONTROL), - $dbi->quoteString($date, Connection::TYPE_CONTROL), - $dbi->quoteString('', Connection::TYPE_CONTROL), - $dbi->quoteString($createSql, Connection::TYPE_CONTROL), - $dbi->quoteString("\n", Connection::TYPE_CONTROL), - $dbi->quoteString($trackingSet, Connection::TYPE_CONTROL), + $dbi->quoteString($dbName, ConnectionType::ControlUser), + $dbi->quoteString('', ConnectionType::ControlUser), + $dbi->quoteString($version, ConnectionType::ControlUser), + $dbi->quoteString($date, ConnectionType::ControlUser), + $dbi->quoteString($date, ConnectionType::ControlUser), + $dbi->quoteString('', ConnectionType::ControlUser), + $dbi->quoteString($createSql, ConnectionType::ControlUser), + $dbi->quoteString("\n", ConnectionType::ControlUser), + $dbi->quoteString($trackingSet, ConnectionType::ControlUser), ); return (bool) $dbi->queryAsControlUser($sqlQuery); @@ -324,9 +324,9 @@ class Tracker Util::backquote($trackingFeature->database), Util::backquote($trackingFeature->tracking), $newState, - $dbi->quoteString($dbName, Connection::TYPE_CONTROL), - $dbi->quoteString($tableName, Connection::TYPE_CONTROL), - $dbi->quoteString($version, Connection::TYPE_CONTROL), + $dbi->quoteString($dbName, ConnectionType::ControlUser), + $dbi->quoteString($tableName, ConnectionType::ControlUser), + $dbi->quoteString($version, ConnectionType::ControlUser), ); return (bool) $dbi->queryAsControlUser($sqlQuery); @@ -379,8 +379,8 @@ class Tracker 'SELECT MAX(version) FROM %s.%s WHERE `db_name` = %s AND `table_name` = %s', Util::backquote($trackingFeature->database), Util::backquote($trackingFeature->tracking), - $dbi->quoteString($dbname, Connection::TYPE_CONTROL), - $dbi->quoteString($tablename, Connection::TYPE_CONTROL), + $dbi->quoteString($dbname, ConnectionType::ControlUser), + $dbi->quoteString($tablename, ConnectionType::ControlUser), ); if ($statement != '') { @@ -644,15 +644,15 @@ class Tracker Util::backquote($trackingFeature->tracking), Util::backquote($saveTo), Util::backquote($saveTo), - $dbi->quoteString("\n" . $query, Connection::TYPE_CONTROL), - $dbi->quoteString($date, Connection::TYPE_CONTROL), + $dbi->quoteString("\n" . $query, ConnectionType::ControlUser), + $dbi->quoteString($date, ConnectionType::ControlUser), ); // If table was renamed we have to change // the tablename attribute in pma_tracking too if ($result['identifier'] === 'RENAME TABLE') { $sqlQuery .= ', `table_name` = ' - . $dbi->quoteString($result['tablename_after_rename'], Connection::TYPE_CONTROL) + . $dbi->quoteString($result['tablename_after_rename'], ConnectionType::ControlUser) . ' '; } @@ -666,9 +666,9 @@ class Tracker ' AND `db_name` = %s ' . ' AND `table_name` = %s ' . ' AND `version` = %s ', - $dbi->quoteString($dbname, Connection::TYPE_CONTROL), - $dbi->quoteString($result['tablename'], Connection::TYPE_CONTROL), - $dbi->quoteString((string) $version, Connection::TYPE_CONTROL), + $dbi->quoteString($dbname, ConnectionType::ControlUser), + $dbi->quoteString($result['tablename'], ConnectionType::ControlUser), + $dbi->quoteString((string) $version, ConnectionType::ControlUser), ); $dbi->queryAsControlUser($sqlQuery); @@ -683,7 +683,7 @@ class Tracker '/*NOTRACK*/ SELECT 1 FROM %s.%s WHERE tracking_active = 1 AND db_name = %s LIMIT 1', Util::backquote($trackingFeature->database), Util::backquote($trackingFeature->tracking), - $dbi->quoteString($dbname, Connection::TYPE_CONTROL), + $dbi->quoteString($dbname, ConnectionType::ControlUser), ); return $dbi->queryAsControlUser($sqlQuery)->fetchValue() !== false; diff --git a/src/Tracking/Tracking.php b/src/Tracking/Tracking.php index d357a6de19..27b10d764f 100644 --- a/src/Tracking/Tracking.php +++ b/src/Tracking/Tracking.php @@ -12,7 +12,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\Core; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Dbal\ResultInterface; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Message; @@ -75,11 +75,11 @@ class Tracking '/*NOTRACK*/' . "\n" . 'DELETE FROM %s.%s WHERE `db_name` = %s AND `table_name` = %s', Util::backquote($trackingFeature->database), Util::backquote($trackingFeature->tracking), - $this->dbi->quoteString($dbName, Connection::TYPE_CONTROL), - $this->dbi->quoteString($tableName, Connection::TYPE_CONTROL), + $this->dbi->quoteString($dbName, ConnectionType::ControlUser), + $this->dbi->quoteString($tableName, ConnectionType::ControlUser), ); if ($version !== '') { - $sqlQuery .= ' AND `version` = ' . $this->dbi->quoteString($version, Connection::TYPE_CONTROL); + $sqlQuery .= ' AND `version` = ' . $this->dbi->quoteString($version, ConnectionType::ControlUser); } return (bool) $this->dbi->queryAsControlUser($sqlQuery); @@ -134,8 +134,8 @@ class Tracking 'SELECT * FROM %s.%s WHERE db_name = %s AND table_name = %s ORDER BY version DESC', Util::backquote($trackingFeature->database), Util::backquote($trackingFeature->tracking), - $this->dbi->quoteString($db, Connection::TYPE_CONTROL), - $this->dbi->quoteString($table, Connection::TYPE_CONTROL), + $this->dbi->quoteString($db, ConnectionType::ControlUser), + $this->dbi->quoteString($table, ConnectionType::ControlUser), ); return $this->dbi->queryAsControlUser($query); @@ -644,13 +644,14 @@ class Tracking 'SELECT * FROM %s.%s WHERE `db_name` = %s', Util::backquote($trackingFeature->database), Util::backquote($trackingFeature->tracking), - $this->dbi->quoteString($dbname, Connection::TYPE_CONTROL), + $this->dbi->quoteString($dbname, ConnectionType::ControlUser), ); if ($tablename !== '') { - $sqlQuery .= ' AND `table_name` = ' . $this->dbi->quoteString($tablename, Connection::TYPE_CONTROL) . ' '; + $sqlQuery .= ' AND `table_name` = ' + . $this->dbi->quoteString($tablename, ConnectionType::ControlUser) . ' '; } - $sqlQuery .= ' AND `version` = ' . $this->dbi->quoteString($version, Connection::TYPE_CONTROL) + $sqlQuery .= ' AND `version` = ' . $this->dbi->quoteString($version, ConnectionType::ControlUser) . ' ORDER BY `version` DESC LIMIT 1'; $mixed = $this->dbi->queryAsControlUser($sqlQuery)->fetchAssoc(); @@ -814,10 +815,10 @@ class Tracking Util::backquote($trackingFeature->database), Util::backquote($trackingFeature->tracking), $logType->getColumnName(), - $this->dbi->quoteString($newDataProcessed, Connection::TYPE_CONTROL), - $this->dbi->quoteString($dbName, Connection::TYPE_CONTROL), - $this->dbi->quoteString($tableName, Connection::TYPE_CONTROL), - $this->dbi->quoteString($version, Connection::TYPE_CONTROL), + $this->dbi->quoteString($newDataProcessed, ConnectionType::ControlUser), + $this->dbi->quoteString($dbName, ConnectionType::ControlUser), + $this->dbi->quoteString($tableName, ConnectionType::ControlUser), + $this->dbi->quoteString($version, ConnectionType::ControlUser), ); $result = $this->dbi->queryAsControlUser($sqlQuery); @@ -1136,7 +1137,7 @@ class Tracking // Prepare statement to get HEAD version $allTablesQuery = ' SELECT table_name, MAX(version) as version FROM ' . Util::backquote($trackingFeature->database) . '.' . Util::backquote($trackingFeature->tracking) - . ' WHERE db_name = ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) + . ' WHERE db_name = ' . $this->dbi->quoteString($db, ConnectionType::ControlUser) . ' GROUP BY table_name ORDER BY table_name ASC'; $allTablesResult = $this->dbi->queryAsControlUser($allTablesQuery); @@ -1148,9 +1149,9 @@ class Tracking [$tableName, $versionNumber] = $oneResult; $tableQuery = ' SELECT * FROM ' . Util::backquote($trackingFeature->database) . '.' . Util::backquote($trackingFeature->tracking) - . ' WHERE `db_name` = ' . $this->dbi->quoteString($db, Connection::TYPE_CONTROL) - . ' AND `table_name` = ' . $this->dbi->quoteString($tableName, Connection::TYPE_CONTROL) - . ' AND `version` = ' . $this->dbi->quoteString($versionNumber, Connection::TYPE_CONTROL); + . ' WHERE `db_name` = ' . $this->dbi->quoteString($db, ConnectionType::ControlUser) + . ' AND `table_name` = ' . $this->dbi->quoteString($tableName, ConnectionType::ControlUser) + . ' AND `version` = ' . $this->dbi->quoteString($versionNumber, ConnectionType::ControlUser); $versions[] = $this->dbi->queryAsControlUser($tableQuery)->fetchAssoc(); } diff --git a/src/Tracking/TrackingChecker.php b/src/Tracking/TrackingChecker.php index e095f11242..9c1939950e 100644 --- a/src/Tracking/TrackingChecker.php +++ b/src/Tracking/TrackingChecker.php @@ -7,7 +7,7 @@ namespace PhpMyAdmin\Tracking; use PhpMyAdmin\ConfigStorage\Features\TrackingFeature; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Util; @@ -67,7 +67,7 @@ class TrackingChecker JOIN %s.%s USING(table_name, version)", Util::backquote($this->trackingFeature->database), Util::backquote($this->trackingFeature->tracking), - $this->dbi->quoteString($dbName, Connection::TYPE_CONTROL), + $this->dbi->quoteString($dbName, ConnectionType::ControlUser), Util::backquote($this->trackingFeature->database), Util::backquote($this->trackingFeature->tracking), ); diff --git a/src/Transformations.php b/src/Transformations.php index c22c25ca3c..6d98cb96bd 100644 --- a/src/Transformations.php +++ b/src/Transformations.php @@ -18,7 +18,7 @@ declare(strict_types=1); namespace PhpMyAdmin; use PhpMyAdmin\ConfigStorage\Relation; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Plugins\TransformationsInterface; use function array_shift; @@ -296,8 +296,8 @@ class Transformations . '`input_transformation_options`' . ' FROM ' . Util::backquote($browserTransformationFeature->database) . '.' . Util::backquote($browserTransformationFeature->columnInfo) - . ' WHERE `db_name` = ' . $dbi->quoteString($db, Connection::TYPE_CONTROL) - . ' AND `table_name` = ' . $dbi->quoteString($table, Connection::TYPE_CONTROL) + . ' WHERE `db_name` = ' . $dbi->quoteString($db, ConnectionType::ControlUser) + . ' AND `table_name` = ' . $dbi->quoteString($table, ConnectionType::ControlUser) . ' AND ( `mimetype` != \'\'' . (! $strict ? ' OR `transformation` != \'\'' . ' OR `transformation_options` != \'\'' @@ -314,7 +314,7 @@ class Transformations * input_transformation_options: string * }> $result */ - $result = $dbi->fetchResult($comQry, 'column_name', null, Connection::TYPE_CONTROL); + $result = $dbi->fetchResult($comQry, 'column_name', null, ConnectionType::ControlUser); foreach ($result as $column => $values) { // convert mimetype to new format (f.e. Text_Plain, etc) @@ -387,9 +387,9 @@ class Transformations `comment` FROM ' . Util::backquote($browserTransformationFeature->database) . '.' . Util::backquote($browserTransformationFeature->columnInfo) . ' - WHERE `db_name` = ' . $dbi->quoteString($db, Connection::TYPE_CONTROL) . ' - AND `table_name` = ' . $dbi->quoteString($table, Connection::TYPE_CONTROL) . ' - AND `column_name` = ' . $dbi->quoteString($key, Connection::TYPE_CONTROL); + WHERE `db_name` = ' . $dbi->quoteString($db, ConnectionType::ControlUser) . ' + AND `table_name` = ' . $dbi->quoteString($table, ConnectionType::ControlUser) . ' + AND `column_name` = ' . $dbi->quoteString($key, ConnectionType::ControlUser); $testRs = $dbi->queryAsControlUser($testQry); @@ -402,15 +402,15 @@ class Transformations . Util::backquote($browserTransformationFeature->columnInfo) . ' SET ' . '`mimetype` = ' - . $dbi->quoteString($mimetype, Connection::TYPE_CONTROL) . ', ' + . $dbi->quoteString($mimetype, ConnectionType::ControlUser) . ', ' . '`transformation` = ' - . $dbi->quoteString($transformation, Connection::TYPE_CONTROL) . ', ' + . $dbi->quoteString($transformation, ConnectionType::ControlUser) . ', ' . '`transformation_options` = ' - . $dbi->quoteString($transformationOpts, Connection::TYPE_CONTROL) . ', ' + . $dbi->quoteString($transformationOpts, ConnectionType::ControlUser) . ', ' . '`input_transformation` = ' - . $dbi->quoteString($inputTransform, Connection::TYPE_CONTROL) . ', ' + . $dbi->quoteString($inputTransform, ConnectionType::ControlUser) . ', ' . '`input_transformation_options` = ' - . $dbi->quoteString($inputTransformOpts, Connection::TYPE_CONTROL); + . $dbi->quoteString($inputTransformOpts, ConnectionType::ControlUser); } else { $updQuery = 'DELETE FROM ' . Util::backquote($browserTransformationFeature->database) @@ -418,9 +418,9 @@ class Transformations } $updQuery .= ' - WHERE `db_name` = ' . $dbi->quoteString($db, Connection::TYPE_CONTROL) . ' - AND `table_name` = ' . $dbi->quoteString($table, Connection::TYPE_CONTROL) . ' - AND `column_name` = ' . $dbi->quoteString($key, Connection::TYPE_CONTROL); + WHERE `db_name` = ' . $dbi->quoteString($db, ConnectionType::ControlUser) . ' + AND `table_name` = ' . $dbi->quoteString($table, ConnectionType::ControlUser) . ' + AND `column_name` = ' . $dbi->quoteString($key, ConnectionType::ControlUser); } elseif ($hasValue) { $updQuery = 'INSERT INTO ' . Util::backquote($browserTransformationFeature->database) @@ -429,14 +429,14 @@ class Transformations . 'transformation, transformation_options, ' . 'input_transformation, input_transformation_options) ' . ' VALUES(' - . $dbi->quoteString($db, Connection::TYPE_CONTROL) . ',' - . $dbi->quoteString($table, Connection::TYPE_CONTROL) . ',' - . $dbi->quoteString($key, Connection::TYPE_CONTROL) . ',' - . $dbi->quoteString($mimetype, Connection::TYPE_CONTROL) . ',' - . $dbi->quoteString($transformation, Connection::TYPE_CONTROL) . ',' - . $dbi->quoteString($transformationOpts, Connection::TYPE_CONTROL) . ',' - . $dbi->quoteString($inputTransform, Connection::TYPE_CONTROL) . ',' - . $dbi->quoteString($inputTransformOpts, Connection::TYPE_CONTROL) . ')'; + . $dbi->quoteString($db, ConnectionType::ControlUser) . ',' + . $dbi->quoteString($table, ConnectionType::ControlUser) . ',' + . $dbi->quoteString($key, ConnectionType::ControlUser) . ',' + . $dbi->quoteString($mimetype, ConnectionType::ControlUser) . ',' + . $dbi->quoteString($transformation, ConnectionType::ControlUser) . ',' + . $dbi->quoteString($transformationOpts, ConnectionType::ControlUser) . ',' + . $dbi->quoteString($inputTransform, ConnectionType::ControlUser) . ',' + . $dbi->quoteString($inputTransformOpts, ConnectionType::ControlUser) . ')'; } if (isset($updQuery)) { diff --git a/src/UserPreferences.php b/src/UserPreferences.php index 2b3128507c..d78459cb73 100644 --- a/src/UserPreferences.php +++ b/src/UserPreferences.php @@ -7,7 +7,7 @@ namespace PhpMyAdmin; use PhpMyAdmin\Config\ConfigFile; use PhpMyAdmin\Config\Forms\User\UserFormList; use PhpMyAdmin\ConfigStorage\Relation; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Identifiers\DatabaseName; use function __; @@ -89,7 +89,7 @@ class UserPreferences . ' FROM ' . $queryTable . ' WHERE `username` = ' . $this->dbi->quoteString((string) $relationParameters->user); - $row = $this->dbi->fetchSingleRow($query, DatabaseInterface::FETCH_ASSOC, Connection::TYPE_CONTROL); + $row = $this->dbi->fetchSingleRow($query, DatabaseInterface::FETCH_ASSOC, ConnectionType::ControlUser); if (! is_array($row) || ! isset($row['config_data']) || ! isset($row['ts'])) { return ['config_data' => [], 'mtime' => time(), 'type' => 'db']; } @@ -135,7 +135,7 @@ class UserPreferences . ' WHERE `username` = ' . $this->dbi->quoteString($relationParameters->user); - $hasConfig = $this->dbi->fetchValue($query, 0, Connection::TYPE_CONTROL); + $hasConfig = $this->dbi->fetchValue($query, 0, ConnectionType::ControlUser); $configData = json_encode($configArray); if ($hasConfig) { $query = 'UPDATE ' . $queryTable @@ -155,10 +155,10 @@ class UserPreferences unset($_SESSION['cache'][$cacheKey]['userprefs']); } - if (! $this->dbi->tryQuery($query, Connection::TYPE_CONTROL)) { + if (! $this->dbi->tryQuery($query, ConnectionType::ControlUser)) { $message = Message::error(__('Could not save configuration')); $message->addMessage( - Message::error($this->dbi->getError(Connection::TYPE_CONTROL)), + Message::error($this->dbi->getError(ConnectionType::ControlUser)), '

', ); if (! $this->hasAccessToDatabase($relationParameters->db)) { @@ -188,7 +188,7 @@ class UserPreferences ); } - return (bool) $this->dbi->fetchSingleRow($query, 'ASSOC', Connection::TYPE_CONTROL); + return (bool) $this->dbi->fetchSingleRow($query, 'ASSOC', ConnectionType::ControlUser); } /** diff --git a/tests/classes/ConfigTest.php b/tests/classes/ConfigTest.php index 260aae88d9..235af49856 100644 --- a/tests/classes/ConfigTest.php +++ b/tests/classes/ConfigTest.php @@ -8,7 +8,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\Config\Settings; use PhpMyAdmin\Config\Settings\Server; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Depends; @@ -43,7 +43,6 @@ use const INFO_MODULES; use const PHP_OS; use const TEST_PATH; -/** @psalm-import-type ConnectionType from Connection */ #[CoversClass(Config::class)] class ConfigTest extends AbstractTestCase { @@ -734,10 +733,9 @@ PHP; * * @param mixed[] $serverCfg Server configuration * @param mixed[] $expected Expected result - * @psalm-param ConnectionType $connectionType */ #[DataProvider('connectionParams')] - public function testGetConnectionParams(array $serverCfg, int $connectionType, array $expected): void + public function testGetConnectionParams(array $serverCfg, ConnectionType $connectionType, array $expected): void { $result = Config::getConnectionParams(new Server($serverCfg), $connectionType); $this->assertEquals(new Server($expected), $result); @@ -780,7 +778,7 @@ PHP; return [ [ $cfgBasic, - Connection::TYPE_USER, + ConnectionType::User, [ 'user' => 'u', 'password' => 'pass', @@ -796,7 +794,7 @@ PHP; ], [ $cfgBasic, - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, [ 'user' => 'u2', 'password' => 'p2', @@ -810,7 +808,7 @@ PHP; ], [ $cfgSsl, - Connection::TYPE_USER, + ConnectionType::User, [ 'user' => 'u', 'password' => 'pass', @@ -826,7 +824,7 @@ PHP; ], [ $cfgSsl, - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, [ 'user' => 'u2', 'password' => 'p2', @@ -840,7 +838,7 @@ PHP; ], [ $cfgControlSsl, - Connection::TYPE_USER, + ConnectionType::User, [ 'user' => 'u', 'password' => 'pass', @@ -857,7 +855,7 @@ PHP; ], [ $cfgControlSsl, - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, [ 'user' => 'u2', 'password' => 'p2', @@ -872,10 +870,9 @@ PHP; ]; } - /** @psalm-param ConnectionType $connectionType */ #[DataProvider('connectionParamsWhenConnectionIsUserOrAuxiliaryProvider')] public function testGetConnectionParamsWhenConnectionIsUserOrAuxiliary( - int $connectionType, + ConnectionType $connectionType, string $host, string $port, string $expectedHost, @@ -889,15 +886,15 @@ PHP; /** @psalm-return iterable */ public static function connectionParamsWhenConnectionIsUserOrAuxiliaryProvider(): iterable { - yield 'user with only port empty' => [Connection::TYPE_USER, 'test.host', '', 'test.host', '0']; - yield 'user with only host empty' => [Connection::TYPE_USER, '', '12345', 'localhost', '12345']; - yield 'user with host and port empty' => [Connection::TYPE_USER, '', '', 'localhost', '0']; - yield 'user with host and port defined' => [Connection::TYPE_USER, 'test.host', '12345', 'test.host', '12345']; - yield 'aux with only port empty' => [Connection::TYPE_AUXILIARY, 'test.host', '', 'test.host', '0']; - yield 'aux with only host empty' => [Connection::TYPE_AUXILIARY, '', '12345', 'localhost', '12345']; - yield 'aux with host and port empty' => [Connection::TYPE_AUXILIARY, '', '', 'localhost', '0']; + yield 'user with only port empty' => [ConnectionType::User, 'test.host', '', 'test.host', '0']; + yield 'user with only host empty' => [ConnectionType::User, '', '12345', 'localhost', '12345']; + yield 'user with host and port empty' => [ConnectionType::User, '', '', 'localhost', '0']; + yield 'user with host and port defined' => [ConnectionType::User, 'test.host', '12345', 'test.host', '12345']; + yield 'aux with only port empty' => [ConnectionType::Auxiliary, 'test.host', '', 'test.host', '0']; + yield 'aux with only host empty' => [ConnectionType::Auxiliary, '', '12345', 'localhost', '12345']; + yield 'aux with host and port empty' => [ConnectionType::Auxiliary, '', '', 'localhost', '0']; yield 'aux with host and port defined' => [ - Connection::TYPE_AUXILIARY, + ConnectionType::Auxiliary, 'test.host', '12345', 'test.host', diff --git a/tests/classes/Controllers/Server/VariablesControllerTest.php b/tests/classes/Controllers/Server/VariablesControllerTest.php index ce8b28f5aa..00fa277e6f 100644 --- a/tests/classes/Controllers/Server/VariablesControllerTest.php +++ b/tests/classes/Controllers/Server/VariablesControllerTest.php @@ -8,7 +8,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\Controllers\Server\VariablesController; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Providers\ServerVariables\ServerVariablesProvider; @@ -57,8 +57,8 @@ class VariablesControllerTest extends AbstractTestCase $serverGlobalVariables = ['auto_increment_increment' => '0', 'auto_increment_offset' => '12']; $fetchResult = [ - ['SHOW SESSION VARIABLES;', 0, 1, Connection::TYPE_USER, $serverSessionVariables], - ['SHOW GLOBAL VARIABLES;', 0, 1, Connection::TYPE_USER, $serverGlobalVariables], + ['SHOW SESSION VARIABLES;', 0, 1, ConnectionType::User, $serverSessionVariables], + ['SHOW GLOBAL VARIABLES;', 0, 1, ConnectionType::User, $serverGlobalVariables], ]; $dbi->expects($this->any())->method('fetchResult') diff --git a/tests/classes/Database/CentralColumnsTest.php b/tests/classes/Database/CentralColumnsTest.php index e792cf2f5e..a3f11af0ef 100644 --- a/tests/classes/Database/CentralColumnsTest.php +++ b/tests/classes/Database/CentralColumnsTest.php @@ -11,7 +11,7 @@ use PhpMyAdmin\ConfigStorage\RelationParameters; use PhpMyAdmin\Current; use PhpMyAdmin\Database\CentralColumns; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Tests\AbstractTestCase; use PhpMyAdmin\Tests\Stubs\DummyResult; use PhpMyAdmin\Types; @@ -200,7 +200,7 @@ class CentralColumnsTest extends AbstractTestCase 'SELECT count(db_name) FROM `pma_central_columns` WHERE db_name = \'phpmyadmin\';', null, null, - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, ) ->willReturn([3]); @@ -260,7 +260,7 @@ class CentralColumnsTest extends AbstractTestCase . "WHERE db_name = 'PMA_db' AND col_name IN ('id','col1','col2');", null, null, - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, ) ->willReturn(['id', 'col1']); $this->assertEquals( @@ -287,7 +287,7 @@ class CentralColumnsTest extends AbstractTestCase . "WHERE db_name = 'PMA_db' AND col_name IN ('id','col1','col2');", null, null, - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, ) ->willReturn(array_slice($this->columnData, 0, 2)); $this->assertEquals( @@ -367,7 +367,7 @@ class CentralColumnsTest extends AbstractTestCase . "WHERE db_name = 'phpmyadmin' AND col_name IN ('col1','col2');", null, null, - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, ) ->willReturn($this->columnData); $result = $this->centralColumns->getHtmlForEditingPage( @@ -402,7 +402,7 @@ class CentralColumnsTest extends AbstractTestCase 'SELECT * FROM `pma_central_columns` WHERE db_name = \'phpmyadmin\';', null, null, - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, ) ->willReturn($this->columnData); $this->assertEquals( @@ -427,7 +427,7 @@ class CentralColumnsTest extends AbstractTestCase . "NOT IN ('id','col1','col2');", null, null, - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, ) ->willReturn($this->columnData); $this->assertEquals( @@ -450,7 +450,7 @@ class CentralColumnsTest extends AbstractTestCase 'SELECT * FROM `pma_central_columns` WHERE db_name = \'phpmyadmin\' AND col_name IN (\'col1\');', null, null, - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, ) ->willReturn(array_slice($this->columnData, 1, 1)); $this->assertEquals( diff --git a/tests/classes/Database/Designer/CommonTest.php b/tests/classes/Database/Designer/CommonTest.php index 4fae292498..acb1abc921 100644 --- a/tests/classes/Database/Designer/CommonTest.php +++ b/tests/classes/Database/Designer/CommonTest.php @@ -10,7 +10,7 @@ use PhpMyAdmin\ConfigStorage\RelationParameters; use PhpMyAdmin\Current; use PhpMyAdmin\Database\Designer\Common; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Tests\AbstractTestCase; use PhpMyAdmin\Tests\Stubs\DbiDummy; use PhpMyAdmin\Tests\Stubs\DummyResult; @@ -72,7 +72,7 @@ class CommonTest extends AbstractTestCase WHERE pdf_page_number = " . $pg, 'name', null, - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, ); DatabaseInterface::$instance = $dbi; @@ -99,7 +99,7 @@ class CommonTest extends AbstractTestCase 'SELECT `page_descr` FROM `pmadb`.`pdf_pages`' . ' WHERE `page_nr` = ' . $pg, 0, - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, ) ->willReturn($pageName); DatabaseInterface::$instance = $dbi; @@ -155,7 +155,7 @@ class CommonTest extends AbstractTestCase . " WHERE `db_name` = '" . $db . "'" . " AND `page_descr` = '" . $db . "'", 0, - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, ) ->willReturn($defaultPg); $dbi->expects($this->any())->method('quoteString') @@ -186,7 +186,7 @@ class CommonTest extends AbstractTestCase . " WHERE `db_name` = '" . $db . "'" . " AND `page_descr` = '" . $db . "'", 0, - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, ) ->willReturn(false); $dbi->expects($this->any())->method('quoteString') @@ -218,7 +218,7 @@ class CommonTest extends AbstractTestCase . " WHERE `db_name` = '" . $db . "'" . " AND `page_descr` = '" . $db . "'", 0, - Connection::TYPE_CONTROL, + ConnectionType::ControlUser, ) ->willReturn($defaultPg); $dbi->expects($this->any())->method('quoteString') diff --git a/tests/classes/Database/RoutinesTest.php b/tests/classes/Database/RoutinesTest.php index c5eff3e2e1..08ca7d5dda 100644 --- a/tests/classes/Database/RoutinesTest.php +++ b/tests/classes/Database/RoutinesTest.php @@ -8,7 +8,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\Current; use PhpMyAdmin\Database\Routines; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Tests\AbstractTestCase; use PhpMyAdmin\Types; use PhpMyAdmin\UserPrivileges; @@ -250,8 +250,8 @@ class RoutinesTest extends AbstractTestCase $dbi->expects($this->any()) ->method('quoteString') ->willReturnMap([ - ['foo', Connection::TYPE_USER, "'foo'"], - ["foo's bar", Connection::TYPE_USER, "'foo\'s bar'"], + ['foo', ConnectionType::User, "'foo'"], + ["foo's bar", ConnectionType::User, "'foo\'s bar'"], ]); DatabaseInterface::$instance = $dbi; diff --git a/tests/classes/DatabaseInterfaceTest.php b/tests/classes/DatabaseInterfaceTest.php index 1b62cba63c..01e88ace01 100644 --- a/tests/classes/DatabaseInterfaceTest.php +++ b/tests/classes/DatabaseInterfaceTest.php @@ -8,7 +8,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\Config\Settings\Server; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Dbal\DbiExtension; use PhpMyAdmin\Dbal\ResultInterface; use PhpMyAdmin\Dbal\Statement; @@ -639,7 +639,7 @@ class DatabaseInterfaceTest extends AbstractTestCase $dummyDbi->addSelectDb('db1'); $dummyDbi->addSelectDb('db2'); - $databaseList = $dbi->getDatabasesFull(null, true, Connection::TYPE_USER, 'SCHEMA_DATA_LENGTH', 'ASC', 0, 100); + $databaseList = $dbi->getDatabasesFull(null, true, ConnectionType::User, 'SCHEMA_DATA_LENGTH', 'ASC', 0, 100); $this->assertSame([ [ @@ -678,7 +678,7 @@ class DatabaseInterfaceTest extends AbstractTestCase ->with($this->isType('object'), $this->equalTo($query)) ->willReturn($stmtStub); $dbi = $this->createDatabaseInterface($dummyDbi); - $stmt = $dbi->prepare($query, Connection::TYPE_CONTROL); + $stmt = $dbi->prepare($query, ConnectionType::ControlUser); $this->assertSame($stmtStub, $stmt); } diff --git a/tests/classes/NormalizationTest.php b/tests/classes/NormalizationTest.php index 7fd47f70a8..1cc93cba8c 100644 --- a/tests/classes/NormalizationTest.php +++ b/tests/classes/NormalizationTest.php @@ -9,7 +9,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Message; use PhpMyAdmin\Normalization; use PhpMyAdmin\Template; @@ -78,12 +78,12 @@ class NormalizationTest extends AbstractTestCase ->method('getColumnNames') ->willReturn(['id', 'col1', 'col2']); $map = [ - ['PMA_db', 'PMA_table1', Connection::TYPE_USER, []], - ['PMA_db', 'PMA_table', Connection::TYPE_USER, [['Key_name' => 'PRIMARY', 'Column_name' => 'id']]], + ['PMA_db', 'PMA_table1', ConnectionType::User, []], + ['PMA_db', 'PMA_table', ConnectionType::User, [['Key_name' => 'PRIMARY', 'Column_name' => 'id']]], [ 'PMA_db', 'PMA_table2', - Connection::TYPE_USER, + ConnectionType::User, [['Key_name' => 'PRIMARY','Column_name' => 'id'], ['Key_name' => 'PRIMARY','Column_name' => 'col1']], ], ]; diff --git a/tests/classes/Plugins/Export/ExportOdsTest.php b/tests/classes/Plugins/Export/ExportOdsTest.php index b21a589d60..5fa39001b1 100644 --- a/tests/classes/Plugins/Export/ExportOdsTest.php +++ b/tests/classes/Plugins/Export/ExportOdsTest.php @@ -6,7 +6,7 @@ namespace PhpMyAdmin\Tests\Plugins\Export; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Export\Export; use PhpMyAdmin\Plugins\Export\ExportOds; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup; @@ -240,7 +240,7 @@ class ExportOdsTest extends AbstractTestCase $dbi->expects($this->once()) ->method('query') - ->with('SELECT', Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED) + ->with('SELECT', ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED) ->willReturn($resultStub); $resultStub->expects($this->once()) @@ -318,7 +318,7 @@ class ExportOdsTest extends AbstractTestCase $dbi->expects($this->once()) ->method('query') - ->with('SELECT', Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED) + ->with('SELECT', ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED) ->willReturn($resultStub); $resultStub->expects($this->once()) @@ -370,7 +370,7 @@ class ExportOdsTest extends AbstractTestCase $dbi->expects($this->once()) ->method('query') - ->with('SELECT', Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED) + ->with('SELECT', ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED) ->willReturn($resultStub); $resultStub->expects($this->once()) diff --git a/tests/classes/Plugins/Export/ExportOdtTest.php b/tests/classes/Plugins/Export/ExportOdtTest.php index 2e1b15d637..a46a2b6568 100644 --- a/tests/classes/Plugins/Export/ExportOdtTest.php +++ b/tests/classes/Plugins/Export/ExportOdtTest.php @@ -9,7 +9,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\ConfigStorage\RelationParameters; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Export\Export; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Identifiers\TriggerName; @@ -379,7 +379,7 @@ class ExportOdtTest extends AbstractTestCase $dbi->expects($this->once()) ->method('query') - ->with('SELECT', Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED) + ->with('SELECT', ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED) ->willReturn($resultStub); $resultStub->expects($this->once()) @@ -448,7 +448,7 @@ class ExportOdtTest extends AbstractTestCase $dbi->expects($this->once()) ->method('query') - ->with('SELECT', Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED) + ->with('SELECT', ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED) ->willReturn($resultStub); $resultStub->expects($this->once()) @@ -500,7 +500,7 @@ class ExportOdtTest extends AbstractTestCase $dbi->expects($this->once()) ->method('query') - ->with('SELECT', Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED) + ->with('SELECT', ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED) ->willReturn($resultStub); $resultStub->expects($this->once()) diff --git a/tests/classes/Plugins/Export/ExportSqlTest.php b/tests/classes/Plugins/Export/ExportSqlTest.php index aefd2f920c..c6ed039886 100644 --- a/tests/classes/Plugins/Export/ExportSqlTest.php +++ b/tests/classes/Plugins/Export/ExportSqlTest.php @@ -10,7 +10,7 @@ use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\ConfigStorage\RelationParameters; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Export\Export; use PhpMyAdmin\Plugins\Export\ExportSql; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup; @@ -590,8 +590,8 @@ class ExportSqlTest extends AbstractTestCase $dbi->expects($this->exactly(2)) ->method('fetchValue') ->willReturnMap([ - ['SHOW CREATE EVENT `db`.`f1`', 'Create Event', Connection::TYPE_USER, 'f1event'], - ['SHOW CREATE EVENT `db`.`f2`', 'Create Event', Connection::TYPE_USER, 'f2event'], + ['SHOW CREATE EVENT `db`.`f1`', 'Create Event', ConnectionType::User, 'f1event'], + ['SHOW CREATE EVENT `db`.`f2`', 'Create Event', ConnectionType::User, 'f2event'], ]); $dbi->expects($this->any())->method('quoteString') ->willReturnCallback(static fn (string $string): string => "'" . $string . "'"); @@ -1061,7 +1061,7 @@ SQL; $dbi->expects($this->once()) ->method('tryQuery') - ->with('SELECT a FROM b WHERE 1', Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED) + ->with('SELECT a FROM b WHERE 1', ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED) ->willReturn($resultStub); $resultStub->expects($this->once()) @@ -1161,7 +1161,7 @@ SQL; $dbi->expects($this->once()) ->method('tryQuery') - ->with('SELECT a FROM b WHERE 1', Connection::TYPE_USER, DatabaseInterface::QUERY_UNBUFFERED) + ->with('SELECT a FROM b WHERE 1', ConnectionType::User, DatabaseInterface::QUERY_UNBUFFERED) ->willReturn($resultStub); $resultStub->expects($this->once()) diff --git a/tests/classes/Plugins/Export/ExportTexytextTest.php b/tests/classes/Plugins/Export/ExportTexytextTest.php index 76b8b0452d..ca6fe08432 100644 --- a/tests/classes/Plugins/Export/ExportTexytextTest.php +++ b/tests/classes/Plugins/Export/ExportTexytextTest.php @@ -11,7 +11,7 @@ use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\ConfigStorage\RelationParameters; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Export\Export; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Identifiers\TriggerName; @@ -293,8 +293,8 @@ class ExportTexytextTest extends AbstractTestCase $dbi->expects($this->exactly(2)) ->method('getColumns') ->willReturnMap([ - ['db', 'table', false, Connection::TYPE_USER, [$column]], - ['db', 'table', true, Connection::TYPE_USER, [$columnFull]], + ['db', 'table', false, ConnectionType::User, [$column]], + ['db', 'table', true, ConnectionType::User, [$columnFull]], ]); DatabaseInterface::$instance = $dbi; diff --git a/tests/classes/Server/PrivilegesTest.php b/tests/classes/Server/PrivilegesTest.php index 22411c066e..cd831a2c7d 100644 --- a/tests/classes/Server/PrivilegesTest.php +++ b/tests/classes/Server/PrivilegesTest.php @@ -9,7 +9,7 @@ use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\ConfigStorage\RelationCleanup; use PhpMyAdmin\ConfigStorage\RelationParameters; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Dbal\ResultInterface; use PhpMyAdmin\Dbal\Statement; use PhpMyAdmin\Html\Generator; @@ -1828,8 +1828,8 @@ class PrivilegesTest extends AbstractTestCase $userQuery = 'SELECT * FROM `mysql`.`user` WHERE `User` = ? AND `Host` = ?;'; $globalPrivQuery = 'SELECT * FROM `mysql`.`global_priv` WHERE `User` = ? AND `Host` = ?;'; $dbi->expects($this->exactly(2))->method('prepare')->willReturnMap([ - [$userQuery, Connection::TYPE_USER, $mysqliStmtStub], - [$globalPrivQuery, Connection::TYPE_USER, $mysqliStmtStub], + [$userQuery, ConnectionType::User, $mysqliStmtStub], + [$globalPrivQuery, ConnectionType::User, $mysqliStmtStub], ]); $mysqliResultStub->expects($this->exactly(2)) diff --git a/tests/classes/Table/TableTest.php b/tests/classes/Table/TableTest.php index e00096c26f..4f288a311b 100644 --- a/tests/classes/Table/TableTest.php +++ b/tests/classes/Table/TableTest.php @@ -8,7 +8,7 @@ use PhpMyAdmin\Config; use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\ConfigStorage\RelationParameters; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\ListDatabase; use PhpMyAdmin\Query\Cache; use PhpMyAdmin\SqlParser\Context; @@ -82,35 +82,35 @@ class TableTest extends AbstractTestCase $sqlAnalyzeStructureTrue, null, null, - Connection::TYPE_USER, + ConnectionType::User, [['COLUMN_NAME' => 'COLUMN_NAME', 'DATA_TYPE' => 'DATA_TYPE']], ], [ $getUniqueColumnsSql . ' WHERE (Non_unique = 0)', ['Key_name', null], 'Column_name', - Connection::TYPE_USER, + ConnectionType::User, [['index1'], ['index3'], ['index5']], ], [ $getUniqueColumnsSql, 'Column_name', 'Column_name', - Connection::TYPE_USER, + ConnectionType::User, ['column1', 'column3', 'column5', 'ACCESSIBLE', 'ADD', 'ALL'], ], [ 'SHOW COLUMNS FROM `PMA`.`PMA_BookMark`', 'Field', 'Field', - Connection::TYPE_USER, + ConnectionType::User, ['column1', 'column3', 'column5', 'ACCESSIBLE', 'ADD', 'ALL'], ], [ 'SHOW COLUMNS FROM `PMA`.`PMA_BookMark`', null, null, - Connection::TYPE_USER, + ConnectionType::User, [ [ 'Field' => 'COLUMN_NAME1', @@ -134,7 +134,7 @@ class TableTest extends AbstractTestCase 'SHOW TRIGGERS FROM `PMA` LIKE \'PMA_BookMark\';', null, null, - Connection::TYPE_USER, + ConnectionType::User, [ [ 'Trigger' => 'name1', @@ -166,7 +166,7 @@ class TableTest extends AbstractTestCase 'SHOW TRIGGERS FROM `PMA` LIKE \'PMA_.BookMark\';', null, null, - Connection::TYPE_USER, + ConnectionType::User, [ [ 'Trigger' => 'name1', @@ -197,21 +197,21 @@ class TableTest extends AbstractTestCase ]; $fetchValue = [ - [$sqlIsViewTrue, 0, Connection::TYPE_USER, 'PMA_BookMark'], - [$sqlCopyData, 0, Connection::TYPE_USER, false], - [$sqlIsViewFalse, 0, Connection::TYPE_USER, false], - [$sqlIsUpdatableViewTrue, 0, Connection::TYPE_USER, 'PMA_BookMark'], - [$sqlIsUpdatableViewFalse, 0, Connection::TYPE_USER, false], + [$sqlIsViewTrue, 0, ConnectionType::User, 'PMA_BookMark'], + [$sqlCopyData, 0, ConnectionType::User, false], + [$sqlIsViewFalse, 0, ConnectionType::User, false], + [$sqlIsUpdatableViewTrue, 0, ConnectionType::User, 'PMA_BookMark'], + [$sqlIsUpdatableViewFalse, 0, ConnectionType::User, false], [ "SELECT 1 FROM information_schema.VIEWS WHERE TABLE_SCHEMA = 'aa' AND TABLE_NAME = 'ad'", 0, - Connection::TYPE_USER, + ConnectionType::User, 'ad', ], [ "SELECT 1 FROM information_schema.VIEWS WHERE TABLE_SCHEMA = 'bb' AND TABLE_NAME = 'ad'", 0, - Connection::TYPE_USER, + ConnectionType::User, false, ], ]; @@ -1363,19 +1363,19 @@ class TableTest extends AbstractTestCase ->willReturnMap([ [ 'SHOW CREATE TABLE `aa`.`ad`', - Connection::TYPE_USER, + ConnectionType::User, DatabaseInterface::QUERY_BUFFERED, true, $resultStub, ], [ 'SHOW TABLE STATUS FROM `aa` WHERE Name = \'ad\'', - Connection::TYPE_USER, + ConnectionType::User, DatabaseInterface::QUERY_BUFFERED, true, $resultStub, ], - ['USE `aa`', Connection::TYPE_USER, DatabaseInterface::QUERY_BUFFERED, true, $resultStub], + ['USE `aa`', ConnectionType::User, DatabaseInterface::QUERY_BUFFERED, true, $resultStub], ]); $resultStub->expects($this->any()) ->method('fetchRow') diff --git a/tests/classes/Tracking/TrackerTest.php b/tests/classes/Tracking/TrackerTest.php index 74317719ea..513a042ff7 100644 --- a/tests/classes/Tracking/TrackerTest.php +++ b/tests/classes/Tracking/TrackerTest.php @@ -10,7 +10,7 @@ use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\ConfigStorage\RelationParameters; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Tests\AbstractTestCase; use PhpMyAdmin\Tests\Stubs\DummyResult; use PhpMyAdmin\Tracking\Tracker; @@ -185,9 +185,9 @@ class TrackerTest extends AbstractTestCase $useStatement = 'USE `pma_test`'; $showCreateTableQuery = 'SHOW CREATE TABLE `pma_test`.`pma_tbl`'; $dbi->expects($this->exactly(3))->method('tryQuery')->willReturnMap([ - [$showTableStatusQuery, Connection::TYPE_USER, DatabaseInterface::QUERY_BUFFERED, true, $resultStub], - [$useStatement, Connection::TYPE_USER, DatabaseInterface::QUERY_BUFFERED, true, $resultStub], - [$showCreateTableQuery, Connection::TYPE_USER, DatabaseInterface::QUERY_BUFFERED, true, $resultStub], + [$showTableStatusQuery, ConnectionType::User, DatabaseInterface::QUERY_BUFFERED, true, $resultStub], + [$useStatement, ConnectionType::User, DatabaseInterface::QUERY_BUFFERED, true, $resultStub], + [$showCreateTableQuery, ConnectionType::User, DatabaseInterface::QUERY_BUFFERED, true, $resultStub], ]); $dbi->expects($this->any())->method('query') diff --git a/tests/classes/UserPreferencesTest.php b/tests/classes/UserPreferencesTest.php index a1769cf2b4..0ae3d092af 100644 --- a/tests/classes/UserPreferencesTest.php +++ b/tests/classes/UserPreferencesTest.php @@ -10,7 +10,7 @@ use PhpMyAdmin\ConfigStorage\Relation; use PhpMyAdmin\ConfigStorage\RelationParameters; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Dbal\Connection; +use PhpMyAdmin\Dbal\ConnectionType; use PhpMyAdmin\Message; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Template; @@ -108,7 +108,7 @@ class UserPreferencesTest extends AbstractTestCase $dbi->expects($this->once()) ->method('fetchSingleRow') - ->with($query, DatabaseInterface::FETCH_ASSOC, Connection::TYPE_CONTROL) + ->with($query, DatabaseInterface::FETCH_ASSOC, ConnectionType::ControlUser) ->willReturn(['ts' => '123', 'config_data' => json_encode([1, 2])]); $dbi->expects($this->any()) ->method('quoteString') @@ -183,12 +183,12 @@ class UserPreferencesTest extends AbstractTestCase $dbi->expects($this->once()) ->method('fetchValue') - ->with($query1, 0, Connection::TYPE_CONTROL) + ->with($query1, 0, ConnectionType::ControlUser) ->willReturn('1'); $dbi->expects($this->once()) ->method('tryQuery') - ->with($query2, Connection::TYPE_CONTROL) + ->with($query2, ConnectionType::ControlUser) ->willReturn($this->createStub(DummyResult::class)); $dbi->expects($this->any()) @@ -213,17 +213,17 @@ class UserPreferencesTest extends AbstractTestCase $dbi->expects($this->once()) ->method('fetchValue') - ->with($query1, 0, Connection::TYPE_CONTROL) + ->with($query1, 0, ConnectionType::ControlUser) ->willReturn(false); $dbi->expects($this->once()) ->method('tryQuery') - ->with($query2, Connection::TYPE_CONTROL) + ->with($query2, ConnectionType::ControlUser) ->willReturn(false); $dbi->expects($this->once()) ->method('getError') - ->with(Connection::TYPE_CONTROL) + ->with(ConnectionType::ControlUser) ->willReturn('err1'); $dbi->expects($this->any()) ->method('quoteString')