Как изменить столбец таблицы динамически, используя PHP и MYSQL - PullRequest
0 голосов
/ 19 июня 2020

Я добавил форму, включающую поле ввода и кнопку. Теперь я пытаюсь передать текст из поля ввода в свой запрос в качестве имени столбца при нажатии кнопки. метод формы - это post, а действие - это путь к файлу PHP, содержащему функцию. Текст из поля ввода хранится в переменной $subject, и теперь я пытаюсь передать эту переменную в запрос. Я запускаю свое приложение на сервере XAMPP, и оно продолжает выдавать мне эту

ошибку: "У вас есть ошибка в синтаксисе SQL; проверьте соответствующее руководство в версию вашего сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с '' Engli sh 'VARCHAR (100)' в строке 1 ".

Как мне это сделать?

ИСТОЧНИК ВЕБ-СТРАНИЦЫ:

<form action="addons/functions.php" method="POST">
                            <br><h1 class="bg-warning">Subject</h1>
                            <input type="text" placeholder="add Subject" name="subject" class="input-group"><br>
                            <button type="submit" name="addsub" class="btn-success btn-dark">Add Subject</button>
                            <span class="mailspan"><?php 

                            if(isset($_SESSION['message'])){
                                echo $_SESSION['message'];
                                unset ($_SESSION['message']);
                            }

                    ?></span>
                        </form>

PHP ИСТОЧНИК ФАЙЛА:

if (isset($_POST['addsub'])){
    $sub=$_POST['subject'];
    $conn->query("ALTER TABLE students ADD '$sub' VARCHAR(100)" ) or die($conn->error);
    $_SESSION['message']='Subject added successfully!';
 header("location:../admin.php");
}

1 Ответ

0 голосов
/ 19 июня 2020

Я думаю, что в этом запросе отсутствует слово "COLUMN", если вы собираетесь добавить новый столбец. Вместо этого

"ALTER TABLE students ADD '$sub' VARCHAR(100)"

попробуйте

"ALTER TABLE students ADD COLUMN '$sub' VARCHAR(100)"

Но, как говорили другие ребята, прочтите о подготовленных операторах, чтобы избежать SQL инъекции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...