我想在MySQL数据库中存储一个日期值。
我有一个名为A.php
的PHP页面,其中有3个输入:d
,m
,y
,其中d =(1 ... 31)
,m =(1 ... 12)
和y =(1970到2009)
。
现在在b.php
中,我收集这些值并需要将它们存储在我的数据库中。
我的数据库有一个名为dob
的字段,它是日期类型。
如何从d
,m
,y
构造一个日期类型的变量并将其存储在数据库中?
MySQL日期字段采用“yyyy-mm-dd”格式,因此请将其存储为字符串。从PHP传递时,请包括破折号。
$sql = 'insert into tbl (dob) values
(\'' . $month . '/' . $day . '/' . $year . '\')';
mysql_real_escape_string
}}以防止SQL注入。要构建一个日期类型的变量,请使用mktime()函数:
$date = mktime(0, 0, 0, $month, $day, $year);
要将$ date存储在数据库中,请将日期转换为字符串:
$sql = "INSERT INTO table (dob) VALUES ('" . date('Y-m-d', $date) . "')";
或者,使用mySQLi:
$query = $db->prepare('INSERT INTO table (dob) VALUES (FROM_UNIXTIME(?))');
$query->bind_param('i', $date);
$query->Execute();
mktime()
然后,当你从数据库中检索它时,使用
date()
将其转换为您想要的任何格式(例如2009年10月31日;10/31/2009等)
太长了。简单点:
$dt = sprintf("%'04s-%'02s-%'02s",$y,$m,$d);
mysql_query("insert into mytable (dob) values ('$dt')");
mm/dd/yyyy
而不是dd/mm/yyyy
作为格式。 - Eric