dbi = $dbi; } public function __invoke(): void { global $db; $selected = $_POST['selected_tbl'] ?? []; if (empty($selected)) { $this->response->setRequestStatus(false); $this->response->addJSON('message', __('No table selected.')); return; } $views = $this->dbi->getVirtualTables($db); $fullQueryViews = ''; $fullQuery = ''; foreach ($selected as $selectedValue) { $current = $selectedValue; if (! empty($views) && in_array($current, $views)) { $fullQueryViews .= (empty($fullQueryViews) ? 'DROP VIEW ' : ', ') . Util::backquote(htmlspecialchars($current)); } else { $fullQuery .= (empty($fullQuery) ? 'DROP TABLE ' : ', ') . Util::backquote(htmlspecialchars($current)); } } if (! empty($fullQuery)) { $fullQuery .= ';
' . "\n"; } if (! empty($fullQueryViews)) { $fullQuery .= $fullQueryViews . ';
' . "\n"; } $urlParams = ['db' => $db]; foreach ($selected as $selectedValue) { $urlParams['selected'][] = $selectedValue; } foreach ($views as $current) { $urlParams['views'][] = $current; } $this->render('database/structure/drop_form', [ 'url_params' => $urlParams, 'full_query' => $fullQuery, 'is_foreign_key_check' => ForeignKey::isCheckEnabled(), ]); } }