mysql
delete from info where UNIX_TIMESTAMP()-ADDTIME > BDAY*86400UNIX_TIMESTAMP() 返回一个Unix时间戳记(从'1970-01-01 00:00:00'GMT开始的秒数)。与php的time()相同
86400 24*60*60 一天的秒数若考虑到mysql数据库不与php在同一服务器上时可能有的时间差。则
mysql_query("delete from info where ".time()."-ADDTIME > BDAY*86400");
delete from info where UNIX_TIMESTAMP()-ADDTIME > BDAY*86400UNIX_TIMESTAMP() 返回一个Unix时间戳记(从'1970-01-01 00:00:00'GMT开始的秒数)。与php的time()相同
86400 24*60*60 一天的秒数若考虑到mysql数据库不与php在同一服务器上时可能有的时间差。则
mysql_query("delete from info where ".time()."-ADDTIME > BDAY*86400");
<?
...数据库连接代码略.....$sql = "select * from info";
$res = mysql_query($sql,$conn); //$conn为数据库连接
while($row = @mysql_fetch_arra($res))
{
/***假设你的ADDTIME的形式为2003-10-10***/
$oldYear = substr($row[ADDTIME],0,4);
$oldMonth = substr($row[ADDTIME],5,2);
$oldDay = substr($row[ADDTIME],8,2);
$tmpDays = (mktime(0,0,0,date("m"),date("d"),date("Y"))-mktime(0,0,0,$oldMonth,$oldDay,$oldYear))/(24*3600);
if($tmpDays > $row[BDAY])
{//大于保留天数,从数据库中删除数据
$sql = "delete from info where id='$row[ID]'";
$del_res = mysql_query($sql,$conn); //$conn为数据库连接
}
}...关闭数据库连接...
?>