我需要将表单中的日期字段插入到mysql数据库中。如果用户未输入日期,则应使用当前日期。我的代码是:
if ($_POST[date]==0)
{$ref_date=date('Y-d-m');}
else {$ref_date=$_POST[date];}
$L="insert into referral (ID,patient, Doctor,Date) values (default,$pat,$doc,'$ref_date')";
mysql_query($L) or die(mysql_error());
当我在表单中提交日期时,它工作正常,但当我将该字段留空时,它输入0000-00-00。
答案 0 :(得分:3)
MySQL期望日期为YYYY-MM-DD
格式。你有YYYY-DD-MM
。变化:
$ref_date=date('Y-d-m');
为:
$ref_date=date('Y-m-d');
答案 1 :(得分:0)
但是,您应该注意,与MySQL服务器相比,Apache(或您正在使用的任何php服务器)可能具有不同的时间/时区。
让我们说Apache的服务器比MySQL早2h。如果它是1月22日上午1点(在Apache中),则使用日期('Ỹ-m-d')将返回2015-01-22和CURDATE()(MySQL当前日期&#) 39; s函数)将返回2015-01-21。
因此,有两种可能的解决方案。一个是John Conde的解决方案:
$ref_date = date('Y-d-m');
另一个是插入CURDATE():
$ref_date = 'CURDATE()';