3 declare(strict_types
=1);
5 namespace PhpMyAdmin\Controllers\Database
;
7 use PhpMyAdmin\Database\MultiTableQuery
;
8 use PhpMyAdmin\DatabaseInterface
;
9 use PhpMyAdmin\Response
;
10 use PhpMyAdmin\Template
;
13 * Handles database multi-table querying
15 class MultiTableQueryController
extends AbstractController
17 /** @var DatabaseInterface */
21 * @param Response $response
22 * @param string $db Database name.
23 * @param DatabaseInterface $dbi
25 public function __construct($response, Template
$template, $db, $dbi)
27 parent
::__construct($response, $template, $db);
31 public function index(): void
33 $this->addScriptFiles([
34 'vendor/jquery/jquery.md5.js',
35 'database/multi_table_query.js',
36 'database/query_generator.js',
39 $queryInstance = new MultiTableQuery($this->dbi
, $this->template
, $this->db
);
41 $this->response
->addHTML($queryInstance->getFormHtml());
44 public function displayResults(): void
49 'sql_query' => $_POST['sql_query'],
50 'db' => $_POST['db'] ??
$_GET['db'] ??
null,
53 $this->response
->addHTML(MultiTableQuery
::displayResults(
56 $PMA_Theme->getImgPath()
60 public function table(): void
63 'tables' => $_GET['tables'],
64 'db' => $_GET['db'] ??
null,
66 $constrains = $this->dbi
->getForeignKeyConstrains(
70 $this->response
->addJSON(['foreignKeyConstrains' => $constrains]);