我正在创建一个简单的表单来将事件数据插入我的数据库。
形式:
<form enctype="multipart/form-data" action="upload.php" method="POST">
Event Date/Time: <input type="datetime-local" name="event_date">
Event Title: <input type="text" name="event_title">
Event Details:
<textarea id="tiny_mce" name="description" rows="8"></textarea>
<input type="submit" value="Upload">
</form>
操作:upload.php
// new data
$event_date = $_POST['event_date'];
$event_title = $_POST['event_title'];
$description = $_POST['description'];
// query
$addevent = DB::getInstance()->insert('events', array(
'event_date ' => $event_date,
'event_title' => $event_title,
'description' => $description,
));
echo "<pre>".
var_dump($addevent);
echo "</pre>";
如果我对上传脚本中的每个值执行var_dump,我会得到正确返回的值。
当我执行var_dump($addevent);
时,它会以 bool(false)返回,并且没有任何内容添加到我的表格中。
如果我删除<input type="datetime-local" name="event_date">
&amp; $event_date = $_POST['event_date'];
一切正常。
所以我缩小了问题必须在日期时间。
我的DATETIME如何在我的数据库中正确设置。
现在我有event_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
显然这不起作用......有什么建议应该是什么?
答案 0 :(得分:2)
假设为什么删除event_date
工作将是由于您的DB类在转换或格式中没有发现错误,并允许保存继续而不是发送格式错误的数据。
DATETIME
需要一个类似date("Y-m-d H:i:s")
如果您无法验证格式是否已进入您的脚本,您可以允许PHP为您解析和格式化:date("Y-m-d H:i:s",strtotime($event_date))
答案 1 :(得分:1)
可能这不是你想要的答案。但是我想建议你如何在upload.php中调试数据POST。 通过这个你的陈述:
当我做var_dump($ addevent)时;它回归为bool(假)
您应该$_POST['event_date'];
仅调试die($event_date);
。因此,通过仅调试这样的event_date,您可以知道$_POST['event_date'];
// new data
$event_date = $_POST['event_date'];
die($event_date);
//this will show you the value of $_POST['event_date'];
$event_title = $_POST['event_title'];
$description = $_POST['description'];
// query
$addevent = DB::getInstance()->insert('events', array(
'event_date ' => $event_date,
'event_title' => $event_title,
'description' => $description,
));
echo "<pre>".
var_dump($addevent);
echo "</pre>";
答案 2 :(得分:1)
问题在于:
// query
$addevent = DB::getInstance()->insert('events', array(
'event_date ' => $event_date,
'event_title' => $event_title,
'description' => $description,
'event_date '
之间有一个空格......应该没有这样的空格'event_date'
...骨头错误。
我最终将我的datetime-local插入到我的表中,并带有这样的时间戳选项,这样我就可以将它输出到我想要的位置,并根据我的喜好用css设置日期和时间的样式。这是我的表格的样子:
感谢所有帮助,我仍然学到了一些有用的信息。
答案 3 :(得分:0)
我的查看方式:您是否要使用服务器CURRENT_TIMESTAMP来让客户端点击“提交”。还是要让客户自由输入时间和日期。您正在尝试在代码中同时做这两项。
我猜您希望在MySQL数据库上设置CURRENT_TIMESTAMP。删除:
在SQL代码中,将$ event_date VALUE更改为(DEFAULT)。