我有一个带有datetime-local输入的表单,我正在寻找如何提取用户输入到datetime-local的日期和时间的值,并将其值传递到我的名为listDates的列中数据库表名为date_table;
我的数据库连接正常,一切正常。我有更多这些类似的功能,从文本框中添加简单的字符串,它们都可以正常工作。它只是没有注册的datetime-local(或者只是将其注册为0000-00-00 00:00:00(1970年1月1日的初始日期时间值)。
如何正确获取datetime-local的值并将其传递到我的数据库?感谢您提供的任何帮助,我只是在编写PHP和MySQLi时遇到了这个特殊部分。
我的表格
<form>
<input name="theDate" type="datetime-local" required>
<a href="dateCRUD.php?theDate=<?php $_GET['theDate'] ?>&action='addDate'"</a>
<!--I'm not sure if $_GET should be the proper way to get the datetime-local value-->
</form>
我在dateCRUD php中添加,更新,删除名为date_table的数据库表中的日期
$theDate = isset($_REQUEST['theDate']);
switch($_REQUEST['action']){
case 'addDate':
{
addDate($theDate);
break;
}
}
我的php MySQLi函数addDate()
function addDate($theDate)
{
global $conn; //my connection to my database which works fine.
$query = 'INSERT INTO date_table SET listDates = ?';
$stmt = $conn->prepare($query);
$stmt->bind_param('s', $theDate) //can datetime-local be a 'string'?
$stmt->execute();
}
修改
如果有帮助,我在我的数据库的date_table中将listDate类型设置为'datetime'。我应该将其更改为“字符串”类型吗?
答案 0 :(得分:2)
您尝试将datetime-local输入发送到服务器并存储到数据库的表单中的问题。在数据库中键入date_table的日期时间就可以了。日期时间存储日期时间 - 本地值。在您的表单<a href="dateCRUD.php?theDate=<?php $_GET['theDate'] ?>&action='addDate'"</a>
中,<?php $_GET['theDate'] ?>
不会向服务器发送日期时间本地值。您应该使用表单中的按钮发送表单值。像
<form method="post" action="dateCRUD.php&action=addDate">
<input name="theDate" type="datetime-local" required>
<input type="submit" name="addDate">
</form>
将您的PHP代码更新为
if(isset($_POST['addDate'])){
$theDate = isset($_POST['theDate']);
switch($_REQUEST['action']){
case 'addDate':
{
addDate($theDate);
break;
}
}
}
在数据库中使用相同的MySQL函数存储日期。