diff --git a/libraries/classes/Triggers/Triggers.php b/libraries/classes/Triggers/Triggers.php index faf2e1293d..2ec65bb574 100644 --- a/libraries/classes/Triggers/Triggers.php +++ b/libraries/classes/Triggers/Triggers.php @@ -11,6 +11,7 @@ use PhpMyAdmin\Query\Generator as QueryGenerator; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Template; use PhpMyAdmin\Util; +use Webmozart\Assert\Assert; use function __; use function array_column; @@ -299,10 +300,7 @@ class Triggers */ public function getEditorForm(string $db, string $table, string $mode, array $item): string { - $query = 'SELECT `TABLE_NAME` FROM `INFORMATION_SCHEMA`.`TABLES` '; - $query .= 'WHERE `TABLE_SCHEMA`=\'' . $this->dbi->escapeString($db) . '\' '; - $query .= 'AND `TABLE_TYPE` IN (\'BASE TABLE\', \'SYSTEM VERSIONED\')'; - $tables = $this->dbi->fetchResult($query); + $tables = $this->getTables($db); return $this->template->render('triggers/editor_form', [ 'db' => $db, @@ -553,4 +551,19 @@ class Triggers return $result; } + + /** @return list */ + private function getTables(string $db): array + { + $query = sprintf( + 'SELECT `TABLE_NAME` FROM `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_SCHEMA`=%s' + . " AND `TABLE_TYPE` IN ('BASE TABLE', 'SYSTEM VERSIONED')", + $this->dbi->quoteString($db), + ); + $tables = $this->dbi->fetchResult($query); + Assert::allStringNotEmpty($tables); + Assert::isList($tables); + + return $tables; + } } diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 23f4c710a3..5d39590c72 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -12869,9 +12869,6 @@ - - escapeString -