【问题标题】:Posting the date into my database将日期发布到我的数据库中
【发布时间】:2014-07-14 13:32:01
【问题描述】:

我现在正在学习 php,并决定创建一个简单的待办事项列表,它可以按照我的意愿工作。但我决定一个好主意是在项目添加到待办事项列表时添加一个日期戳,你知道,以保持它有条理。

现在,当我通过 phpmyadmin 手动插入项目并选择今天的日期时,页面会按预期显示日期。然而,当我通过前端的脚本提交项目时,日期设置为 0000-00-00 并且我有点卡住了,我相信这与下面的部分有关,没有插入任何相关内容到目前为止,但我不确定该怎么做,我试图研究但有点困惑:

$content = mysqli_real_escape_string($con, $_POST['content']);

$sql="INSERT INTO items (content) VALUES ('$content')";

if (!mysqli_query($con,$sql)) {
  die('Error: ' . mysqli_error($con));
}
header('Location: index.php');

mysqli_close($con);

该项目通过此表单提交:

<form action="insert.php" method="post">
<input type="text" name="content">
<input type="submit" value="Add Item">
</form>

并显示如下:

$result = mysqli_query($con,"SELECT * FROM items");


while($row = mysqli_fetch_array($result)) {
  echo $row['added'] . "<br>" . $row['content'];

  echo "<br>";

  echo "Mark as complete";

  echo "<br>";

  echo "<a onclick='confirmUser()' href='delete.php?id=" . $row['id'] . "'>Delete Item</a>";

  echo "<br>";

  echo "<a href='update.php?id=" . $row['id'] . "'>Edit Item</a>";    

  echo "<br>";
  echo "<br>";     

}

mysqli_close($con);

【问题讨论】:

  • 我没有看到强制将有效日期插入到您的数据库中。我敢打赌你的日期格式不正确。
  • 定义数据库中日期列的默认值
  • “mysqli_real_escape_string”难道不是破坏整个 mysqli API 的重点吗?
  • @MarkBaker 这样就成功了,我该如何处理它显示时间的事实,因为我必须选择 CURRENT_TIMESTAMP 和 DATETIME,因为不允许我只使用 DATE?
  • 在需要显示的时候格式化值

标签: php mysql forms date


【解决方案1】:

将日期列的默认值定义为 current_timestamp。

【讨论】:

    【解决方案2】:

    要么在数据库中设置默认值,要么在查询中添加 NOW()。

    example: 
    $sql="INSERT INTO items (content, date) VALUES ('$content', NOW())";
    

    【讨论】:

      猜你喜欢
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      • 2019-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-05
      • 2012-10-12
      相关资源
      最近更新 更多