不能用sql插入我从日历中选择的日期


Can't insert with sql the date which i picked from calendar

我正试图从大学做一个项目,我不知道如何插入我从日历功能中选择的日期。我尝试了一些东西,但我得到的是0000-00-00或当前日期:2014-06-08。

<?php
 $con=mysqli_connect("","","","");
// Check connection
if (mysqli_connect_errno()) {
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// escape variables for security
$checkin = mysqli_real_escape_string($con, $_POST['checkin']);
$checkout = mysqli_real_escape_string($con, $_POST['checkout']);
$firstname = mysqli_real_escape_string($con, $_POST['firstname']);
$lastname = mysqli_real_escape_string($con, $_POST['lastname']);
$title = mysqli_real_escape_string($con, $_POST['title']);
$roomtype = mysqli_real_escape_string($con, $_POST['roomtype']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$phone = mysqli_real_escape_string($con, $_POST['phone']);

$checkout = date("Y-m-d");

$sql="INSERT INTO reservation (checkin, checkout, firstname, lastname, title, roomtype, email, phone)
VALUES ('$checkin', '$checkout', '$firstname','$lastname', '$title', '$roomtype', '$email', '$phone')";

if (!mysqli_query($con,$sql)) {
  die('Error: ' . mysqli_error($con));
}
echo "Your booking has been completed";
mysqli_close($con);
header("Location: ");  
   exit;  
?>
$checkout = date("Y-m-d");

函数以"Y-m-d"格式给出当前日期,这是您获得当前日期的第一个原因,因为您在执行$checkout = mysqli_real_escape_string($con, $_POST['checkout']);之后保存了当前日期,因此您覆盖了$_POST['checkout']

获得的日期。

你应该这样做:

$checkout = mysqli_real_escape_string($con, $_POST['checkout']);
$checkout = date_format(date_create($checkout), 'Y-m-d');

问题可能出在html表单上。HTML5允许一个简单的日期选择器:

<input type="date" name="checkin">
<input type="date" name="checkout">

你不需要value="DD/MM/YY"和onfocus等参数。如果日期输入为空,它将不返回任何内容。输入还输出日期作为unix时间戳