Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用php更新mysql中的日期类型_Php_Mysql - Fatal编程技术网

用php更新mysql中的日期类型

用php更新mysql中的日期类型,php,mysql,Php,Mysql,我在mysql表中有一个日期字段(dueDate)。我尝试以这种方式更新该专栏: 我有一个函数,它接收4个参数:taskId-标识行,以及新日期的参数:年、月、日 function editTask($taskId,$year,$month,$day){ $str= $year.'-'.$month.'-'.$day; $date=date('Y-m-d', strtotime($str)); $result = mysql_query("UPDATE ta

我在mysql表中有一个日期字段(dueDate)。我尝试以这种方式更新该专栏: 我有一个函数,它接收4个参数:taskId-标识行,以及新日期的参数:年、月、日

 function editTask($taskId,$year,$month,$day){
      $str= $year.'-'.$month.'-'.$day;
      $date=date('Y-m-d', strtotime($str));
      $result = mysql_query("UPDATE tasks SET dueDate='$date' WHERE taskId = $taskId");
 }
但它将日期collumn更改为0-0-0

为什么不工作


添加引号后,它将日期更改为1969-12-31,而不是0-0-0。有人知道为什么吗

MySQL以“YYYY-MM-DD”格式检索并显示日期值。所以你必须用引号把日期括起来。此外,您正在根据日期值创建字符串。因此,不需要使用
strotime()
。试着

$str= $year.'-'.$month.'-'.$day;
$result = mysql_query("UPDATE tasks SET dueDate='$str' WHERE taskId = $taskId");
注:

MySQL以以下格式识别日期值:

  • 作为“YYYY-MM-DD”或“YY-MM-DD”格式的字符串。“轻松的” 语法是允许的:任何标点符号都可以用作 日期部分之间的分隔符。例如,“2012-12-31”、“2012/12/31”, “2012年12月31日”和2012@12@31'是等效的

  • 作为“YYYYMMDD”或“YYMMDD”中没有分隔符的字符串 格式,前提是字符串作为日期有意义。例如 “20070523”和“070523”被解释为“2007-05-23”,但“071332” 是非法的(它有无意义的月和日部分)并成为 “0000-00-00”

  • 作为YYYYMMDD或YYMMDD格式的数字,前提是 数字作为日期是有意义的。例如,19830905和830905是 解释为“1983-09-05”


dueDate字段的数据类型是什么?变量$date的值是什么您只需要执行以下操作:
$date=sprintf(“%04d-%02d-%02d',$year,$month,$day)它不起作用,因为您没有在查询中传递日期文字
2014-09-29
只是一个数学运算–
'2014-09-29'
将是一个日期文字。您首先要做的是将不推荐使用的
mysql\*
函数更改为mysqli或PDO。@Shiran..可能是您做错了什么。我已经在本地测试过了,效果很好。
$year
$month
$day
的值是多少?好的,我会再次检查所有内容。。因此,要更新“date”类型,只需将其分配给字符串即可。。不需要创建日期类型的对象?它可以工作..我忘记在发送之前从_POST获取值..thanx