我试图插入一个用户在一个网站上注册到mysql的日期,但由于一些奇怪的原因,我没有得到它插入正确,我在下面使用这个查询
$connect->query("INSERT INTO `users` (username, email, password, name, country, signup_date) VALUES ('". $username ."', '". $email ."', '". $password ."', '". $fname . " " . $lname ."', '". $country ."', '".time()."')");
我得到一个金额插入到signup_date,但它显然是混乱的,有什么想法吗?
Php的time()
函数返回unix时间戳。然而,MySQL期望以'YYYY-MM-DD HH:MM:SS'
格式提供日期和时间值。只需在php中格式化您的时间值,使其与MySQL期望的格式相匹配。
İf signup_date的类型是datetime,您可以使用date("Y-m-d H:i:s"
)代替time()来获得格式化的datetime
可以使用mysql函数NOW() OR CURDATE()
"INSERT INTO `users` (username, email, password, name, country, signup_date) VALUES ('". $username ."', '". $email ."', '". $password ."', '". $fname . " " . $lname ."', '". $country ."', NOW())"
将列的dataType改为timestamp
在它的默认列中写CURRENT_TIMESTAMP
,不要在signup_date
列中插入任何东西。它会自动插入当前日期
您可以将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
所以取决于你需要什么,你可以使用。