【发布时间】:2014-08-17 11:51:52
【问题描述】:
我的表“列表”包含一个字段:“日期时间”类型的“考试日期”。 该表中的日期按以下结构格式化:“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'); ?>">
为了查看我添加到代码中的值分配:
$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”? 谢谢!
【问题讨论】:
-
如果您不抑制错误(
mysqli_query而不是@mysqli_query),您可能会明白原因(; -
这很容易受到SQL注入,如果我回家时没有人回答我会发布答案
-
操纵其输出,而不是在“输入”上进行。