我的表“列表”包含一个字段:“date_”类型的“exam_date”。 该表中的日期格式如下:“2014-08-31 21:45:47”(yyyy-mm-dd hh:ii:ss)。 在我的输入表单中,日期分配方式如下:
<input id="exam_date" name="exam_date" type="datetime" placeholder="<?php echo date('d-m-y H:i:s'); ?>">
为了看到我添加到我的代码中的值assigne:
$myDate = trim($_POST['exam_date']);
echo trim($_POST['exam_date']);
在显示屏上,我看到按以下结构插入的日期:31-08-14 21:45:47。 我将代码插入表中的代码是:
<?php
date_default_timezone_set('xxx');
$dbcon = @mysqli_connect ('xxx', 'xxx', 'xxx', 'test') OR die ('Could not connect to MySQL: ' . mysqli_connect_error () );
mysqli_set_charset($dbcon, 'utf8');
if (isset($_POST['exam_date']))
{
$myDate = trim($_POST['exam_date']);
echo $myDate ;
$q = "INSERT INTO list (exam_date) VALUES ($myDate)";
$result = @mysqli_query ($dbcon, $q);
if($result)
{
echo "record added";
}
else
{
echo "no record added !";
}
}
?>
<form action="add_date.php" method="post">
<input id="exam_date" name="exam_date" type="datetime" placeholder="<?php echo date('y-m-d H:i:s'); ?>">
<input id="submit" type="submit" name="submit" value="Register">
</form>
当我运行它时,我得到:“没有添加记录”,当我查看表格时,我发现确实没有添加任何记录。 我相信无法添加记录的原因是日期结构的差异:表格和输入的差异。 我可以将表格中的日期结构更改为“dd-mm-yy hh:ii:ss”吗? 有没有办法将输入结构从“dd-mm-yy hh-ii-ss”转换为“yyyy-mm-dd hh:ii:ss”? 谢谢!
答案 0 :(得分:1)
此代码更安全,因为它使用预准备语句http://php.net/manual/en/mysqli.prepare.php。
永远不要相信用户输入的变量!
请注意提交按钮上的name=""
,我们正在检查表单是否已提交
始终正确关闭您的表单inputs
/>
时区.. https://www.youtube.com/watch?v=-5wpm-gesOY
如果您想INSERT
用户输入datetime
,请尝试以下操作:
<强> add_date.php:强>
<?php
date_default_timezone_set('xxx');
$link = mysqli_connect("localhost", "my_user", "my_password", "db_name");
mysqli_set_charset($link, 'utf8');
if (isset($_POST['register'])) {
$myDate = $_POST['exam_date'];
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
if ($stmt = mysqli_prepare($link, "INSERT INTO list (exam_date) VALUES (?)")) {
/* bind parameters for markers */
mysqli_stmt_bind_param($stmt, "s", $myDate);
/* execute query */
if(mysqli_stmt_execute($stmt)) {
echo "record added";
}
else {
echo "no record added !";
}
/* close statement */
mysqli_stmt_close($stmt);
}
/* close connection */
mysqli_close($link);
}
表格:
<form action="add_date.php" method="post">
<input id="exam_date" name="exam_date" type="datetime" value="<?php echo date('y-m-d H:i:s'); ?>" />
<input id="submit" type="submit" name="register" value="Register" />
</form>
答案 1 :(得分:0)
请告诉我你使用的原因
date_default_timezone_set()
if you dont need that than just simply run this query
if ($_SERVER['REQUEST_METHOD']=="POST")
{
$query="INSERT INTO id (date) Values (now())";
$result= mysqli_query($con, $query)or die(mysqli_error($con));
if($result)
{
echo 'success';
}
else {
echo 'failed';
}
答案 2 :(得分:0)
感谢所有试图帮助我的人。 我在&#34; youtube&#34;:
上找到了这段代码<!doctype html>
<html lang=en>
<head>
<title>Insert Date</title>
<meta charset=utf-8>
</head>
<body>
<?php
$raw = "2014 08 18 17 45 00";
$xplod = explode(' ', $raw);
print_r($xplod);
$string=$xplod[0].'-'.$xplod[1].'-'.$xplod[2].' '.$xplod[3].':'.$xplod[4].':'.$xplod[5];
echo "<br/>$string";
$date = date("y-m-d H:i:s", strtotime($string));
echo "<br/> $date";
$dbcon = @mysqli_connect ('xxx', 'xxx', 'xxx', 'test')
OR die ('Could not connect to MySQL: ' . mysqli_connect_error () );
mysqli_set_charset($dbcon, 'utf8');
$q = "INSERT INTO list VALUES ('$date')";
$result = @mysqli_query ($dbcon, $q);
if ($result)
{
echo "record added";
}
else
{
echo "record not added";
}
?>
</body>
</html>
对于像我这样的初学者来说这是令人满意的。