вставьте «текст ввода типа» в качестве даты в базу данных MySQL, используя переполнение стека

Я пытаюсь вставить данные из формы ввода HTML в базу данных MySQL. В моей html-форме тип ввода — «текст», а мой тип базы данных mysql — «дата». при попытке вставить данные в соответствующее поле в моем sql, вставляя только нулевое значение. пожалуйста помоги. мой HTML-скрипт и PHP / MySQL скрипт вставки прилагается.

HTML

<div class="form-group">
<div class="input-group col-sm-4">
<div class="input-group-addon">Payment Due Date&nbsp;&nbsp;<i class="fa fa-calendar-o"></i></div>
<input id ="duedt" class="form-control"  type="text" name ="due_date" required/>
</div>

код PHP MySQL

        <?php
$con=mysqli_connect("localhost","root","pra@181178","ayrilmana");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql= "INSERT INTO dlbcc_purchase (purch_date, purch_amt, purch_dtls,due_date)
VALUES
('$_POST[purch_date]','$_POST[purch_amt]','$_POST[purch_dtls]','$_POST[due_date]')";

if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}

//echo "1 record added";
Header( "Location: purchase.php" );

mysqli_close($con);
?>

0

Решение

Примерно так должно работать:

<?php
//Open MySQL onnection

$sql = "INSERT INTO dlbcc_purchase (purch_date, purch_amt, purch_dtls, due_date) VALUES ('"  . $_POST['purch_date'] . "', '" .$_POST['purch_amt'] . "','" . $_POST['purch_dtls'] . "','" . date('Y-m-d', strtotime($_POST['due_date'])) . "')";

if (!mysqli_query($con, $sql)) {
die('Error: ' . mysqli_error($con));
}

//close MySQL connection and other code
?>

Пожалуйста, будьте в курсе некоторых вещей:

  • Вы уязвимы для инъекций MySQL. Увидеть Как я могу предотвратить SQL-инъекцию в PHP?.
  • Улучшите обработку ошибок, а не с помощью die () или exit ().
  • Дата может быть неправильной или нулевой, поскольку PHP «пытается» преобразовать ее в метку времени Unix, а затем преобразовать обратно в формат даты MySQL.
  • Лучше всего использовать для этого тип «дата» в HTML-форме (начиная с HTML5) или средство выбора даты (рекомендуется!).
0

Другие решения

На моем сайте у меня есть данные, как вы. Я вставляю их в базу данных, используя input type = «data», и у меня нет проблем. Запрос на вставку помещает значение выбранных данных без ошибок ^^.
Используя type = «data», вы увидите маленький календарь, если вы нажмете на вход.

1

По вопросам рекламы [email protected]