当我在我的网站上发布时,mysql仅显示零

时间:2018-10-31 02:22:59

标签: php mysql datetime

我正在创建一个PHP网站,我想插入注释。发表评论后,我想显示当前日期,但我只有此信息:0000-00-00 00:00:00 我输入的是日期时间,默认为CURRENT_TIMESTAMP,但它不起作用。我把它摘下来,也是一样。我只是在mysql db上输入datetime。

PHP代码:

 <?php

       include ('db_connect2.php');
       require ('header.php');
       require ('login.php');
       include ('comments.php');
       date_default_timezone_set('America/New_York');




<?php
   echo "<form method='POST' action='".setComments($conn)."'>
         <input type='hidden' name='user_id' value='Anonymous'>
         <input type='hidden' name='posted' value='".date('YYYY-MM-DD 
         HH:MM:SS')."'>
        <textarea name='body'></textarea><br><br>
        <button name='commentSubmit' type='submit'>Comment</button>
        </form>";
?>

comments.php

setComments($conn);
   function setComments($conn) {
      if (isset($_POST['commentSubmit'])){
        $user_id = $_POST['user_id'];
        $posted = $_POST['posted'];
        $body = $_POST['body'];

        $sql = "INSERT INTO comments (user_id, posted, body) VALUES 
        ('$user_id', '$posted', '$body')";
       $result = mysqli_query($conn, $sql);
  }

 }

      function getComments($conn) {
              $sql = "SELECT * FROM comments";
              $result = mysqli_query($conn, $sql);
              while ($row = $result->fetch_assoc()){
              echo "<div class='comment-box'><p>";
              echo $row['user_id']."<br>";
              echo $row['posted']."<br>";
              echo nl2br($row['body']);
             echo "</p></div>";



    }
 }

1 个答案:

答案 0 :(得分:1)

您在date的隐藏输入中使用了错误的格式:

date('YYYY-MM-DD HH:MM:SS')

应该已经回显了这样的内容:

  

2018201820182018-OctOct-TueTue 2323:OctOct:thth

您想要的是使用与MySQL uses相同的格式,但是要使用PHP格式:

date("Y-m-d H:i:s")

会回声如下:

  

2018-10-30 23:01:23

提示:始终查看您的HTML源代码,它也是一个“工具”。

警告:您的代码可进行SQL注入。请为此使用准备好的声明。

参考文献: