Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysqli时间和时间;插入日期_Php_Mysql_Mysqli - Fatal编程技术网

Php mysqli时间和时间;插入日期

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

我试图将用户在网站上注册的日期插入mysql,但由于一些奇怪的原因,我没有正确地插入,我使用下面的查询

  $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
,向我们显示您的表结构。从那里,您可以使用该列类型的数据库文档来确定时间格式。然后,您可以使用php
time()
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()."')");