MultiTableQueryController.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4. * Holds the PhpMyAdmin\Controllers\Database\MultiTableQueryController
  5. *
  6. * @package PhpMyAdmin\Controllers\Database
  7. */
  8. declare(strict_types=1);
  9. namespace PhpMyAdmin\Controllers\Database;
  10. use PhpMyAdmin\Database\MultiTableQuery;
  11. use PhpMyAdmin\Template;
  12. /**
  13. * Handles database multi-table querying
  14. * @package PhpMyAdmin\Controllers\Database
  15. */
  16. class MultiTableQueryController extends AbstractController
  17. {
  18. /**
  19. * @param Template $template Templace instance
  20. *
  21. * @return string HTML
  22. */
  23. public function index(Template $template): string
  24. {
  25. $queryInstance = new MultiTableQuery($this->dbi, $template, $this->db);
  26. return $queryInstance->getFormHtml();
  27. }
  28. /**
  29. * @param array $params Request parameters
  30. * @return void
  31. */
  32. public function displayResults(array $params): void
  33. {
  34. global $pmaThemeImage;
  35. MultiTableQuery::displayResults(
  36. $params['sql_query'],
  37. $params['db'],
  38. $pmaThemeImage
  39. );
  40. }
  41. /**
  42. * @param array $params Request parameters
  43. * @return array JSON
  44. */
  45. public function table(array $params): array
  46. {
  47. $constrains = $this->dbi->getForeignKeyConstrains(
  48. $params['db'],
  49. $params['tables']
  50. );
  51. return ['foreignKeyConstrains' => $constrains];
  52. }
  53. }