我试图将用户在网站上注册的日期插入到mysql中但由于某些奇怪的原因我没有将其插入正确,我使用下面的查询
$connect->query("INSERT INTO `users` (username, email, password, name, country, signup_date) VALUES ('". $username ."', '". $email ."', '". $password ."', '". $fname . " " . $lname ."', '". $country ."', '".time()."')");
我在signup_date中输入了一笔金额但显然混乱了,有什么想法吗?
答案 0 :(得分:1)
Php' time()
函数returns unix时间戳。但是,MySQL期望以'YYYY-MM-DD HH:MM:SS'
格式提供日期和时间值。只需在php中格式化您的时间值以匹配MySQL期望的格式。
答案 1 :(得分:0)
您可以使用mysql函数NOW() OR CURDATE()
"INSERT INTO `users` (username, email, password, name, country, signup_date) VALUES ('". $username ."', '". $email ."', '". $password ."', '". $fname . " " . $lname ."', '". $country ."', NOW())"
答案 2 :(得分:0)
如果signup_date的类型是日期时间,您可以使用date("Y-m-d H:i:s"
)而不是time()来获取格式化日期时间
答案 3 :(得分:0)
更改列dataType并将其设为timestamp
。
在其默认列中写入CURRENT_TIMESTAMP
,不要在signup_date
列中插入任何内容。它会自动插入当前日期。
答案 4 :(得分:0)
您可以将signup_date的数据类型设置为数据库中的Date,并在查询中使用NOW()
函数。
$connect->query("INSERT INTO `users` (username, email, password, name, country, signup_date) VALUES ('". $username ."', '". $email ."', '". $password ."', '". $fname . " " . $lname ."', '". $country ."', '".NOW()."')");
如果signup_date数据类型仅为Date
并且您使用了上述查询,则数据将采用以下格式:YYYY-MM-DD
但如果它是TIMESTAMP
数据类型,则采用以下格式:YYYY-MM-DD HH:MI:SS
所以取决于你需要什么,你可以使用。