php删除mysql 数据库里时间超过1小时的记录

include'dll.php';$xzsj=time();$sql1="INSERTINTO`chuangshi`.`ggxx`(`id`,`name`,`neiron... include 'dll.php';
$xzsj=time();
$sql1="INSERT INTO `chuangshi`.`ggxx` (`id`,`name`,`neirong` ,`time`)VALUES (NULL,'as1992tt','我是一只小小鸟','$xzsj')";
mysql_query($sql1);//向数据库插入玩家要说的话
$sql="select * from ggxx";
$res=mysql_query($sql);
$row=mysql_fetch_assoc($res);
$id2=$row['id']-5;//这里是前面每次都检测到刚插入的数据,刚插入不会大于30秒,就不执行下面的,所以就让id-5,得出前面的id
echo $id2;//这里得出刚插入ID的前面第五条数据
if (($xzsj - $row['time'])>30) {//大于24小时
$sql="delete from ggxx where id=$id2";//delete from table1 where endTime <now();
mysql_query($sql); //前面得出了刚插入记录ID的前面第五条记录ID,但它这里就是不执行,也就是没有删除记录
}
求知道的大大指点下,帮我改下代码
还有,如果能得出这个表里所有时间大于现在时间30秒的数据,再一次删除就最好了
谢谢了
展开
 我来答
阳光上的桥
2014-08-26 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65806
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
删除30秒以前的记录:
delete from chuangshi.ggxx where `time`<date_sub(now(),interval 30 SECOND)

此外,你插入数据库的语句,时间值最好也使用now(),而不是PHP变量$xzsj=time(),因为如果配置问题,PHP和数据库的时间值可能有时区差异。
创作者ftsffsyss
推荐于2021-02-09 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:82.1万
展开全部
当前的时间减去30秒得出一个时间,然后在数据库中小于这个时间的全部删除就可以了,也就是说一条sql就搞定了,何必这样麻烦
追问
像你说得那样做了,用了while循环取出了所有符合条件的,但我把符合条件的代入mysql命令中去却执行不了,你能不能说得详细些
追答
楼下的这位大侠说的很对啊,用它那条sql执行一把,就可以了全部删除了,不用while把它全部取出来之后再删除。那样是没有意义的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式