【问题标题】:I only getting Year that from HTML input type="date" to Database我只得到从 HTML 输入 type="date" 到数据库的年份
【发布时间】:2018-03-05 15:16:51
【问题描述】:

这是我用来将Date 获取到我的数据库的代码,而我仅将Year 获取到了数据库。我需要将dd/mm/yyyy 更改为我的数据库

<?php
    $conn=mysqli_connect("localhost","root","","home_ac");
    if(mysqli_connect_error()) {
        die("Error While Connecting Database");
    }
    $date = ($_POST['date']);
    $query= "INSERT INTO `sample`(`id`, `date`, `currency`) VALUES (NULL,$date,'$date')";
        mysqli_query($conn, $query)

?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
<form method="post">
    <input type="date" name="date" placeholder="Date">
    <input type="submit" value="ADD">
</form>
</body>
</html>

【问题讨论】:

  • 检查此post 使用strtotime 并将表列的数据类型更改为日期
  • 您应该共享表格的列类型。您想在哪里存储日期和年份?在同一列还是分开?回答你的问题很重要。
  • 我的列数据类型是日期时间

标签: php database html date


【解决方案1】:
if(isset($_POST['date'])){
$date = $_POST['date'];
 }

你对数据库的查询也应该这样格式化(假设你的 ID 是自动递增的):

 $query = "INSERT INTO tablename(date) 
 VALUES('{$date}')                            

将您的数据库格式化为接受 DATE 格式。

【讨论】:

    【解决方案2】:

    此示例将显示一个输入日期框,理想情况下:

    <label>Datetime:
    <input type = "datetime"-local />
        (yyyy-mm-ddThh:mm, such as 2012-01-27T03:15)
    </label>
    

    【讨论】:

      【解决方案3】:

      您需要确保尝试插入的日期格式正确。这是假设

      • 你的用户输入一个日期,如mm/dd/yyyydd/mm/yyyy - MySQL 想要yyyy-mm-dd
      • 您的date 字段是date 类型,而不是datetimetimestamp

      你可以这样做来转换:

      $conn = mysqli_connect('localhost', 'root', '', 'home_ac');
      $date = $_POST['date'];
      $date = date("Y-m-d", strtotime($date));  //Would convert mm/dd/yyyy or dd/mm/yyyy or mm/dd/yy, etc. into yyyy-mm-dd for you.
      
      if(mysqli_connect_error()) {
          die("Error While Connecting Database");
      };
      
      $query = "INSERT INTO `sample`(`id`, `date`) VALUES (NULL, '$date');";
      mysqli_query($conn, $query);
      

      您的初始查询包含一个字段 currency,我没有包含该字段,因为您的 html 中没有它作为用户输入的字段。我猜你有一个有效的 root 密码(你的连接没有包含它,没有 root 密码是一件坏事)

      您还应该确保您正在验证您的用户输入的日期等是否有效。

      您可能需要重新考虑您的表格布局,因为 dateMySQL reserved word。您可以使用它,但您必须确保始终用反引号括起来。

      【讨论】:

        猜你喜欢
        • 2023-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-05
        • 1970-01-01
        • 2022-10-15
        • 1970-01-01
        相关资源
        最近更新 更多