Значение даты записывается как 0000-00-00 в базе данных MySQL из HTML-формы - PullRequest
0 голосов
/ 29 апреля 2019

Я знаю, что один и тот же вопрос задавался несколько раз, но, похоже, я не могу обернуть его вокруг. Я выполнил все решения, которые нашел, но в моем случае это не работает. «Дата» записывается как 0000- 00-00 в базе данных Mysql вместо правильной даты. Вот код PHP.

// initialize variables

$Vehicle_name = "";
$Vehicle_make = "";
$Vehicle_color="";
$Number_plate = "";
$Driver_name = "";
$Number_of_passengers = "";
$Date = "";
$Time = "";
$Security = "";


$id = 0;
$update = false;

if (isset($_POST['save'])) {

    $Vehicle_name = $_POST['Vehicle_name'];
    $Vehicle_make = $_POST['Vehicle_make'];
    $Vehicle_color = $_POST['Vehicle_color'];
    $Number_plate = $_POST['Number_plate'];
    $Driver_name = $_POST['Driver_name'];
    $Number_of_passengers = $_POST['Number_of_passengers'];
    $Date = $_POST['Date '];
    $Time = $_POST['Time'];
    $Security = $_POST['Security'];


    mysqli_query($db, "INSERT INTO vehicle (Vehicle_name,Vehicle_make,Vehicle_color,Number_plate,Driver_name,Number_of_passengers,Date,Time,Security ) VALUES ('$Vehicle_name','$Vehicle_make','$Vehicle_color','$Number_plate','$Driver_name','$Number_of_passengers','$Date','$Time','$Security ')"); 
    $_SESSION['message'] = "Car registered"; 
    header('location: welcome.php');
}`.

Здесь также есть текстовое поле с датой.

<div class="input-group"> <label>Date :</label> <input type="date" name="Date" value="" required="yes" > </div>.

Я потратил так много времени, пытаясь понять это, но все напрасно, пожалуйста, помогите. С уважением.

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

В вашем ключе есть место

$Date = $_POST['Date '];

измените его на

$Date = $_POST['Date'];

Способ передачи параметра приведет к SQL-инъекции .Пожалуйста, прочитайте об этом здесь .

0 голосов
/ 29 апреля 2019

Если тип данных поля вашей базы данных дата , вы можете изменить строку кода ниже

$Date = date('Y-m-d', strtotime($_POST['Date']));

Если тип данных поля вашей базы данных datetime , вы можете изменить строку кода ниже

$Date = date('Y-m-d H:i:s', strtotime($_POST['Date']));

Здесь я вижу, что вы разделяете время в другом поле, тогда вы можете изменить строку кода ниже

$Time = date('H:i:s', strtotime($_POST['Time']));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...