我在php中建立了一个评论系统,可以存储评论,电子邮件和用户名,但我还想在我的数据库中添加2个字段,名为 time - date 存储用户自动提交表单的日期和时间!我搜索了很多,但我找不到任何有用的文章。 如果你能知道如何做到这一点,请帮助我,我将不胜感激!
这是我的代码:
<form action='comment.php' method='POST'>
<span>
<input type='text' name='name' placeholder='Your Name'/>
<input type='email' name='email' placeholder='Email Address'/>
</span>
<textarea name='' name='comment' placeholder='Comment'></textarea>
<input name='submit' type='submit' value='Submit'></input>
<p><?php if(isset($errors['name1'])) echo $errors['name1']; ?></p>
<p><?php if(isset($errors['name2'])) echo $errors['name1']; ?></p>
<p><?php if(isset($errors['email1'])) echo $errors['name1']; ?></p>
<p><?php if(isset($errors['email2'])) echo $errors['name1']; ?></p>
<p><?php if(isset($errors['comment1'])) echo $errors['name1']; ?></p>
<p><?php if(isset($errors['comment2'])) echo $errors['name1']; ?></p>
</form>
<?php
$con = mysqli_connect("localhost","root","","ecommerce");
if (isset($_POST['submit'])){
$name = (isset($_POST['name']));
$email = (isset($_POST['email']));
$comment = (isset($_POST['comment']));
if (empty($name)){
$errors['name1'] = "<p style='color:red;font-family: BCompset, Arial, Helvetica, sans-serif;font-size:30px;float:right;'>Enter your name</p>";
}else{
$name_length = strlen($name);
if ($name_length > 2 ){
if (!empty($email)){
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors['email1'] = "<p style='color:red;font-family: BCompset, Arial, Helvetica, sans-serif;font-size:25px;float:right;'>Enter your email</p>";
}else{
if (empty($comment)){
$errors['comment1'] = "<p style='color:red;font-family: BCompset, Arial, Helvetica, sans-serif;font-size:25px;float:right;'>Write your comment</p>";
}else{
$comment_length = strlen($comment);
if ($comment_length < 5){
$errors['comment2'] = "<p style='color:red;font-family: BCompset, Arial, Helvetica, sans-serif;font-size:25px;float:right;'>Your comment must be more than 5 words</p>";
}
}
}
}else{
$errors['email2'] = "<p style='color:red;font-family: BCompset, Arial, Helvetica, sans-serif;font-size:25px;float:right;'>Enter your email</p>";
}
}else{
$errors['name2'] = "<p style='color:red;font-family: BCompset, Arial, Helvetica, sans-serif;font-size:30px;float:right;'>Your name must be more than 2 words/p>";
}
}
//check errors
if(count($errors) == 0)
{
$insert_comment = "insert into comments (email,name,comment) values ('$email','$name','$comment')";
$insert_comment = mysqli_query($con, $insert_comment);
}
}
?>
答案 0 :(得分:1)
对你的mysql列使用DATE,DATETIME或TIMESTAMP类型。
Reference for DATE, DATETIME, TIMESTAMP
创建列时间戳(例如,您也可以使用您想要的每个名称命名),使用mysql NOW()
或使用php date("Y-m-d H:i:s")
函数在每个插件上设置它:
$insert_comment = "INSERT INTO comments (`email`, `name`, `comment`, `timestamp`) VALUES ('$email','$name','$comment', NOW())";
它将以您选择的格式保存日期时间,时间戳或日期。玩得开心!
答案 1 :(得分:1)
在数据库中创建两个字段:
现在将您的插入查询更改为
insert into comments (email,name,comment, modified_date, modified_time) values ('$email','$name','$comment', CURDATE(), CURTIME())
答案 2 :(得分:1)
Mysql datetime
标准格式为Y-m-d H:m:s
。所以在php中使用date()
,
$date = date("Y-m-d H:i:s");
您可以在插入数据时使用$date
。
答案 3 :(得分:0)
执行此操作的简单方法是创建单个列类型DATETIME
CREATE TABLE IF NOT EXISITS comments(
//all your fields
comment_time DATETIME NOT NULL
)
并在评论表中插入数据时使用now()
函数
$sql = "INSERT INTO comments(comment_time) VALUES('now()')";
另一种方法
您可以使用TIMESTAMP
代替DATETIME
。使用TIMESTAMP
代替DATETIME
的好处是,您不必使用now()
功能,它会自动更新/插入日期&amp;任何列连续更新或插入新数据的时间。
要详细了解TIMESTAMP
访问here