从输入中获取datetime-local值并将其插入数据库的正确方法是什么?

时间:2016-11-26 01:51:43

标签: php database datetime mysqli

我有一个带有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'。我应该将其更改为“字符串”类型吗?

1 个答案:

答案 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函数存储日期。