Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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 日期等于当前日期但高于0000-00-00时自动删除Mysqli行_Php_Mysql_Date_Datetime_Mysqli - Fatal编程技术网

Php 日期等于当前日期但高于0000-00-00时自动删除Mysqli行

Php 日期等于当前日期但高于0000-00-00时自动删除Mysqli行,php,mysql,date,datetime,mysqli,Php,Mysql,Date,Datetime,Mysqli,在我的CMS上,用户可以在帖子上选择一个日期,该日期将到期。目前,该操作正常,当选择的日期等于当前日期时,帖子将自动到期 我想让它,如果用户不输入一个日期,那么帖子将永远不会过期,目前数据库中的日期字段的默认值为0000-00-00,当用户将CMS上的字段留空时,我希望我的过期代码基本上跳过这个日期,并保留与之相关联的任何记录 这是我的过期数据代码: $SQL = $conn->query(" DELETE FROM data WHERE expire <= CURDATE()

在我的CMS上,用户可以在帖子上选择一个日期,该日期将到期。目前,该操作正常,当选择的日期等于当前日期时,帖子将自动到期

我想让它,如果用户不输入一个日期,那么帖子将永远不会过期,目前数据库中的日期字段的默认值为0000-00-00,当用户将CMS上的字段留空时,我希望我的过期代码基本上跳过这个日期,并保留与之相关联的任何记录

这是我的过期数据代码:

$SQL = $conn->query("

DELETE FROM data 
WHERE expire <= CURDATE()

");
$SQL=$conn->query(“
从数据中删除

如果expire使用
而不是
&
,然后只指定
expire
不应该是
'0000-00-00'

DELETE FROM data 
WHERE expire <= CURDATE() 
  AND expire != '0000-00-00'
从数据中删除
如果过期请使用此选项

DELETE FROM table_name WHERE date <= CURDATE() AND date != '0000-00-00'";

DELETE FROM table_name WHERE date You say,MYSQL不喜欢0000-00-00当字段留空时,有没有更好的方法来存储日期值?基本上是对MYSQL 5.7进行了更改,您需要检查我发布的手动链接。如果您不使用MYSQL5.7,这更多是为了将来参考yet@BradleyCousins你可以去艾尔方法使列为空并将默认值设置为空。如果保留为空,则可以将值存储为
NULL
,而不是
0000-00-00
。然后您可以使用第一个查询。
DELETE FROM table_name WHERE date <= CURDATE() AND date != '0000-00-00'";