我正在尝试将日期插入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."')";