Php mysqli时间和时间;插入日期
我试图将用户在网站上注册的日期插入mysql,但由于一些奇怪的原因,我没有正确地插入,我使用下面的查询Php mysqli时间和时间;插入日期,php,mysql,mysqli,Php,Mysql,Mysqli,我试图将用户在网站上注册的日期插入mysql,但由于一些奇怪的原因,我没有正确地插入,我使用下面的查询 $connect->query("INSERT INTO `users` (username, email, password, name, country, signup_date) VALUES ('". $username ."', '". $email ."', '". $password ."', '". $fname . " " . $lname ."', '". $co
$connect->query("INSERT INTO `users` (username, email, password, name, country, signup_date) VALUES ('". $username ."', '". $email ."', '". $password ."', '". $fname . " " . $lname ."', '". $country ."', '".time()."')");
我在注册日期中插入了一个金额,但它显然是混乱的,有什么想法吗?Php的
time()
函数用于unix时间戳。但是,MySQL希望以格式提供日期和时间值。只需在php中设置时间值的格式,以符合MySQL的预期格式。您可以使用MySQL函数NOW()或CURDATE()
如果注册日期的类型为datetime,则可以使用日期(“Y-m-d H:i:s”
)而不是时间()来获取格式化的日期时间更改列数据类型并使其成为时间戳
在默认列中写入CURRENT\u TIMESTAMP
,不要在signup\u date
列中插入任何内容。它将自动插入当前日期。您可以从数据库中将注册日期的数据类型设置为日期,并在查询中使用NOW()
函数
$connect->query("INSERT INTO `users` (username, email, password, name, country, signup_date) VALUES ('". $username ."', '". $email ."', '". $password ."', '". $fname . " " . $lname ."', '". $country ."', '".NOW()."')");
如果注册日期数据类型仅为date
,并且您使用了上述查询,则数据将采用以下格式:YYYY-MM-DD
但是如果它是在时间戳
数据类型中,它将是以下格式:YYYY-MM-DD HH:MI:SS
因此,这取决于你需要什么,你可以使用 列signup\u date
的数据类型是什么?函数的输出是什么?您希望它输出什么?如果不知道数据库结构,我们无法帮助您。请尝试在数据库控制台中使用desc users
,向我们显示您的表结构。从那里,您可以使用该列类型的数据库文档来确定时间格式。然后,您可以使用phptime()
和date(…)
方法根据需要格式化字符串。一旦你有了这个问题,你就可以编辑你的问题,询问你应该使用什么格式化字符串来获得预期的数据库输入警告:使用手动转义非常容易出错,一个错误就可能导致严重的错误。尽可能使用事先准备好的陈述。在任何用户提供的数据被指定为?
或:name
指示符的情况下,这些操作都非常简单,稍后将使用bind_param
或execute
填充指示符,具体取决于您使用的是哪一个。这可能会产生与来自php(时区)的数据不同的结果。在数据库级别上,时间戳字段甚至会更有效。是的,这是可行的,对不起,这几乎是常识,但我只是感到困惑。
$connect->query("INSERT INTO `users` (username, email, password, name, country, signup_date) VALUES ('". $username ."', '". $email ."', '". $password ."', '". $fname . " " . $lname ."', '". $country ."', '".NOW()."')");