PHP - 将日期插入 mysql


PHP - Insert date into mysql

我正在尝试将日期插入mysql,但每次它都失败并在phpmyadmin中显示为0000-00-00

我的日期格式类似于2012-08-06(yyyy-mm-dd),数据库中的日期字段类型是 date

$date = "2012-08-06";
mysql_query("INSERT INTO data_table (title, date_of_event) 
             VALUES('". $_POST['post_title'] ."',
                    '". $date ."')") or die(mysql_error()); 

尝试将-更改为/或删除它们,它不起作用。

试试

$date = "2012-08-06";
$date=date("Y-m-d",strtotime($date));

尝试在MySQL中CAST函数:

mysql_query("INSERT INTO data_table (title, date_of_event)
VALUES('". $_POST['post_title'] ."',
CAST('". $date ."' AS DATE))") or die(mysql_error()); 

除非你想插入与"今天"不同的日期,否则你可以使用 CURDATE():

$sql = 'INSERT INTO data_tables (title, date_of_event) VALUES ("%s", CURDATE())';
$sql = sprintf ($sql, $_POST['post_title']);

嗡!请不要忘记清理您的MySQL输入,特别是通过mysql_real_escape_string()

先尝试转换日期。

$date = "2012-08-06";
mysql_query("INSERT INTO data_table (title, date_of_event)
               VALUES('" . $_POST['post_title'] . "',
                      '" . $date . "')") 
           or die(mysql_error());

卡住时如何调试 SQL 查询

打印您的查询并直接在mysql或phpMyAdmin中运行它

$date = "2012-08-06";
$query= "INSERT INTO data_table (title, date_of_event) 
             VALUES('". $_POST['post_title'] ."',
                    '". $date ."')";
echo $query;
mysql_query($query) or die(mysql_error()); 

这样你就可以确保问题不出在PHP脚本中,而出在SQL查询中。

如何提交有关 SQL 查询的问题

确保您提供了足够的闭合

  • 表架构
  • 查询
  • 错误消息是任何
$date=$year."-".$month."-".$day; 
$new_date=date('Y-m-d', strtotime($dob)); 
$status=0;  
$insert_date = date("Y-m-d H:i:s");  
$latest_insert_id=0; 
$insertSql="insert into participationDetail (formId,name,city,emailId,dob,mobile,status,social_media1,social_media2,visa_status,tnc_status,data,gender,insertDate)values('".$formid."','".$name."','".$city."','".$email."','".$new_date."','".$mobile."','".$status."','".$link1."','".$link2."','".$visa_check."','".$tnc_check."','".json_encode($detail_arr,JSON_HEX_APOS)."','".$gender."','".$insert_date."')";