ZingXing Ответов: 1

Я хочу взять значение из текста в форме и вставить в таблицу в msql


Во-первых, я попытался создать форму в html.
Во-вторых, поскольку у меня уже была своя база данных и таблица. Я хочу вставить значение из формы в таблицу. Но это не работает.

Что я уже пробовал:

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>

<form action="DBMid.php" method="post">

	Assignment: <input type="text" name="assignment">
    Deadline: <input type="date" name="deadline">

    <input type="submit" name="submit" value="submit">
</form>


</body>
</html>


<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>

	<?php 

        // Create connection

		$conn = mysqli_connect("127.0.0.1", "root", "", "mymid");

        // Check connection

		if ($conn->connect_error) {
                                     die("Connection failed: " . $conn->connect_error);
                                  } 

        $Assignment = $_POST['assignment'];
        $Deadline = $_POST['deadline'];

        echo $Assignment;
        echo $Deadline;

        $sql = "INSERT INTO board (Assignment,Deadline) VALUES ($Assignment, $Deadline)";

        mysqli_close($conn);
	?>


</body>
</html>

1 Ответов

Рейтинг:
0

Patrice T

В вашем коде, $Assignment и $Deadline заменяются их содержимым, это плохая идея с самого начала, и если они не являются числами, вам нужно добавить кавычки вокруг.

$sql = "INSERT INTO board (Assignment,Deadline) VALUES ('$Assignment', '$Deadline')";


Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь к уязвимости под названием "SQL-инъекция", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа выйдет из строя. Если пользователь вводит имя, например "Брайан О'Коннер", может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция - Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL-инъекция - руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL - OWASP[^]


ZingXing

Я уже добавил строку ( " ), как и в вашем решении. Но это все равно не работает. Спасибо.

Patrice T

Можете ли вы определить "не работает" ?

ZingXing

Когда я отправляю форму, значения не вставляются в таблицу в моей базе данных.

Patrice T

А что говорит SQL server ?

ZingXing

Извините. Я действительно не понимаю вашего вопроса. Не могли бы вы прояснить это?

Patrice T

Когда запрос завершается неудачно, SQL server сообщает причину в своей консоли или журналах ошибок.

ZingXing

Он не показывает никаких ошибок. Я попытался повторить $Assignment и $deadline, и это показывает их ценность. Но когда я попытался вставить, это не сработало.

ZingXing

Ошибка синтаксического анализа: синтаксическая ошибка, неожиданное " (T_ENCAPSED_AND_WHITESPACE), ожидание идентификатора (T_STRING) или переменной (T_VARIABLE) или числа (T_NUM_STRING) в C:\Xampp\phpMyAdmin\DBMid.php на линии 26

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.