PHP - 将日期插入mysql

问题描述 投票:11回答:6

我试图在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()); 

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

php mysql date insert format
6个回答
12
投票

在MySQL中尝试CAST函数:

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

10
投票

尝试

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

0
投票

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

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

PS!请不要忘记清理MySQL输入,尤其是通过mysql_real_escape_string()


0
投票

尝试先转换日期。

$date = "2012-08-06";

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

0
投票

如何在卡住时调试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查询的问题

确保你提供足够的关闭

  • 表模式
  • 询问
  • 错误信息是任何

-1
投票
$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."')";
© www.soinside.com 2019 - 2024. All rights reserved.