我正在创建一个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>";
}
}
答案 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注入。请为此使用准备好的声明。
参考文献: