理论上代码是正确的,但是怕个万一……
文件、数据删错了就不好玩了……
高手们,帮忙看下下面的代码正确与否?
require (dirname(__FILE__) . "/../conn.php");
mysql_select_db("news",$conn_database);
mysql_query("delete from web_news where news_date<(date(now())-60*60*24*30)");
mysql_close($conn_database);
if ($handle = opendir(dirname(__FILE__).'/../cache/')) {
while (false !== ($file = readdir($handle))) {
if ((time()-filectime(dirname(__FILE__).'/../cache/'.$file)) < 60*60*24*30) {
if (strripos($file, '.html') !== false) {
unlink(dirname(__FILE__).'/../cache/'.$file);
}
}
}
}
文件、数据删错了就不好玩了……
高手们,帮忙看下下面的代码正确与否?
require (dirname(__FILE__) . "/../conn.php");
mysql_select_db("news",$conn_database);
mysql_query("delete from web_news where news_date<(date(now())-60*60*24*30)");
mysql_close($conn_database);
if ($handle = opendir(dirname(__FILE__).'/../cache/')) {
while (false !== ($file = readdir($handle))) {
if ((time()-filectime(dirname(__FILE__).'/../cache/'.$file)) < 60*60*24*30) {
if (strripos($file, '.html') !== false) {
unlink(dirname(__FILE__).'/../cache/'.$file);
}
}
}
}
应改为
filemtime你可以注释掉 unlink(dirname(__FILE__).'/../cache/'.$file);
改为
$fn = dirname(__FILE__).'/../cache/'.$file;
echo $fn . ' - ' . filemtime($fn);
先查看一下
刚试了,查看了一下文件没问题
但是数据库删除没作用。直接在PHPMYADMIN里:
delete from web_news where news_date<(date(now())-60*60*24*30)显示
Deleted rows: 0 (Query took 0.1939 sec)news_date int(11)。肯定有记录超过一个月的,最老的记录是3个月前的。
(date(now())-60*60*24*30)
改为
DATE_SUB(now(),INTERVAL 30 DAY)同样已是先 select 确认一下