1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?php
- declare(strict_types=1);
- namespace PhpMyAdmin\Controllers\Table\Structure;
- use PhpMyAdmin\Controllers\Table\AbstractController;
- use PhpMyAdmin\SqlParser\Context;
- use function _ngettext;
- use function count;
- use function implode;
- use function sprintf;
- use function trim;
- final class ReservedWordCheckController extends AbstractController
- {
- public function __invoke(): void
- {
- if ($GLOBALS['cfg']['ReservedWordDisableWarning'] !== false) {
- $this->response->setRequestStatus(false);
- return;
- }
- $columns_names = $_POST['field_name'];
- $reserved_keywords_names = [];
- foreach ($columns_names as $column) {
- if (! Context::isKeyword(trim($column), true)) {
- continue;
- }
- $reserved_keywords_names[] = trim($column);
- }
- if (Context::isKeyword(trim($this->table), true)) {
- $reserved_keywords_names[] = trim($this->table);
- }
- if (count($reserved_keywords_names) === 0) {
- $this->response->setRequestStatus(false);
- }
- $this->response->addJSON(
- 'message',
- sprintf(
- _ngettext(
- 'The name \'%s\' is a MySQL reserved keyword.',
- 'The names \'%s\' are MySQL reserved keywords.',
- count($reserved_keywords_names)
- ),
- implode(',', $reserved_keywords_names)
- )
- );
- }
- }
|