Replace `global` keyword with `$GLOBALS`
[phpmyadmin.git] / libraries / classes / Controllers / Table / DeleteRowsController.php
blob55f735b77422e6355fd5e50efd8f86e42cdbb1d9
1 <?php
3 declare(strict_types=1);
5 namespace PhpMyAdmin\Controllers\Table;
7 use PhpMyAdmin\ConfigStorage\Relation;
8 use PhpMyAdmin\ConfigStorage\RelationCleanup;
9 use PhpMyAdmin\Controllers\AbstractController;
10 use PhpMyAdmin\DatabaseInterface;
11 use PhpMyAdmin\Operations;
12 use PhpMyAdmin\ResponseRenderer;
13 use PhpMyAdmin\Sql;
14 use PhpMyAdmin\Template;
15 use PhpMyAdmin\Transformations;
16 use PhpMyAdmin\Url;
17 use PhpMyAdmin\Util;
18 use PhpMyAdmin\Utils\ForeignKey;
20 use function __;
21 use function sprintf;
23 final class DeleteRowsController extends AbstractController
25 /** @var DatabaseInterface */
26 private $dbi;
28 public function __construct(
29 ResponseRenderer $response,
30 Template $template,
31 DatabaseInterface $dbi
32 ) {
33 parent::__construct($response, $template);
34 $this->dbi = $dbi;
37 public function __invoke(): void
39 $mult_btn = $_POST['mult_btn'] ?? '';
40 $original_sql_query = $_POST['original_sql_query'] ?? '';
41 $selected = $_POST['selected'] ?? [];
43 $relation = new Relation($this->dbi);
44 $sql = new Sql(
45 $this->dbi,
46 $relation,
47 new RelationCleanup($this->dbi, $relation),
48 new Operations($this->dbi, $relation),
49 new Transformations(),
50 $this->template
53 if ($mult_btn === __('Yes')) {
54 $default_fk_check_value = ForeignKey::handleDisableCheckInit();
55 $GLOBALS['sql_query'] = '';
57 foreach ($selected as $row) {
58 $query = sprintf(
59 'DELETE FROM %s WHERE %s LIMIT 1;',
60 Util::backquote($GLOBALS['table']),
61 $row
63 $GLOBALS['sql_query'] .= $query . "\n";
64 $this->dbi->selectDb($GLOBALS['db']);
65 $this->dbi->query($query);
68 if (! empty($_REQUEST['pos'])) {
69 $_REQUEST['pos'] = $sql->calculatePosForLastPage($GLOBALS['db'], $GLOBALS['table'], $_REQUEST['pos']);
72 ForeignKey::handleDisableCheckCleanup($default_fk_check_value);
74 $GLOBALS['disp_message'] = __('Your SQL query has been executed successfully.');
75 $GLOBALS['disp_query'] = $GLOBALS['sql_query'];
78 $_url_params = $GLOBALS['urlParams'];
79 $_url_params['goto'] = Url::getFromRoute('/table/sql');
81 if (isset($original_sql_query)) {
82 $GLOBALS['sql_query'] = $original_sql_query;
85 $GLOBALS['active_page'] = Url::getFromRoute('/sql');
87 $this->response->addHTML($sql->executeQueryAndSendQueryResponse(
88 null,
89 false,
90 $GLOBALS['db'],
91 $GLOBALS['table'],
92 null,
93 null,
94 null,
95 null,
96 null,
97 $GLOBALS['goto'],
98 $GLOBALS['disp_query'] ?? null,
99 $GLOBALS['disp_message'] ?? null,
100 $GLOBALS['sql_query'],
101 null