PHP-在mysql中插入日期
我试图将日期插入mysql,但每次都失败,在phpmyadmin中显示为PHP-在mysql中插入日期,php,mysql,date,insert,format,Php,Mysql,Date,Insert,Format,我试图将日期插入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'] ."', '"
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():
PS!请不要忘记清理您的MySQL输入,尤其是通过MySQL\u real\u escape\u 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查询中
如何提交有关SQ查询的问题
确保您提供了足够的关闭
- 表模式
- 质疑
- 错误消息是任意的
time()
)而不是日期。并在显示时使用date()
函数将其转换为任何格式。如果切换到PDO(或mysqli)@MakuraYami,您有两个问题(sql注入漏洞和使用旧的、即将弃用的扩展)都可以解决,为什么?你能解释一下吗?@mishu是的,我知道这两个问题:)只是我昨天发现了PDO和mysqli,我想完成编码,然后转换扩展并修复安全问题。@xperator,当你使用时间戳时,它会将你的时间节省为整数。这不会像你现在这样出现问题。它的优点是可以以任何日期格式写入,而不需要任何危险的字符串到日期函数。再试一次,有一个额外的逗号,它是您的字段的确切数据类型date\u of\u event
?哎呀,这个逗号有点小问题。修复并立即生效:)为了安全/稳定,应使用准备好的声明。此代码段不应用于任何专业代码中。不,它不是当前日期,今天的日期只是一个示例:)为了安全性/稳定性,应使用准备好的语句。这段代码不应该用在任何专业代码中。我同意这里的@Mike,两者有什么区别?(除了让脚本更复杂一点)过去我遇到过同样的问题,我的工作方式也是如此。同样,我只是试着像xperator那样插入日期,插入了日期@xperator,你介意打印sql语句吗?这个答案毫无意义——它不会更改字符串。任何人都不应该实施这个非解决方案。只有代码的答案在堆栈溢出方面价值很低,因为它们对未来数千名研究人员的教育/授权作用甚微。为了安全性/稳定性,应该使用事先准备好的声明。此代码段不应用于任何专业代码中。为了安全性/稳定性,应使用准备好的语句。此代码段不应用于任何专业代码中。为了安全性/稳定性,应使用准备好的语句。此代码段不应用于任何专业代码中。此外,仅代码的答案在堆栈溢出上的价值很低,因为它们对未来数千名研究人员的教育/授权作用甚微。
$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());
$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."')";