我有一个带有jQuery日期选择器的调查表,但我在将日期插入MySQL数据库时遇到问题。结果一直都是零。
我的PHP和MySQL技能不是很好,所以一点帮助将非常感激。
数据库中的日期格式为datetime。
我的代码如下。
<input type="text" name="surveydate" id="datepicker">
<?php
session_start(); // Session starts here.
$servername = "";
$username = "";
$password = "";
$dbname = "";
$_SESSION['firstname'] = $_POST['firstname'];
$_SESSION['lastname'] = $_POST['lastname'];
$_SESSION['gender'] = $_POST['gender'];
$_SESSION['postcode'] = $_POST['postcode'];
$_SESSION['surveydate'] = $_POST['surveydate'];
$firstname = $_SESSION['firstname'] ;
$lastname = $_SESSION['lastname'];
$gender = $_SESSION['gender'];
$postcode = $_SESSION['postcode'];
$surveydate= $_SESSION['surveydate'];
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO results (firstname,lastname,gender,postcode,surveydate)
VALUES ('$firstname','$lastname','$gender','$postcode','$surveydate')";
$today = date("d M Y");
if ($conn->query($sql) === TRUE) {
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
答案 0 :(得分:1)
由于 surveydate 的数据类型 日期,您必须使用'Ymd'格式输入DB其他方面它只会作为'0000-00-00'进入。
确保这两种方法中的任何一种都能让您的代码更好地运行。
方法1:更改jquery datpicker本身的数据类型。
$(document).ready(function() {
$("#datepicker").datepicker({ dateFormat: 'yy-mm-dd' });
});
方法2:在进入数据库时更改日期格式
替换:
$_SESSION['surveydate'] = $_POST['surveydate'];
使用:
$_SESSION['surveydate'] = date('Y-m-d',strtotime($_POST['surveydate']));
采用任何一种方法。如果您使用method1,则无需按照方法2执行,反之亦然。