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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php删除mysql 数据库里时间超过1小时的记录相关的知识,希望对你有一定的参考价值。

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秒的数据,再一次删除就最好了
谢谢了

删除30秒以前的记录:
delete from chuangshi.ggxx where `time`<date_sub(now(),interval 30 SECOND)

此外,你插入数据库的语句,时间值最好也使用now(),而不是PHP变量$xzsj=time(),因为如果配置问题,PHP和数据库的时间值可能有时区差异。
参考技术A 当前的时间减去30秒得出一个时间,然后在数据库中小于这个时间的全部删除就可以了,也就是说一条sql就搞定了,何必这样麻烦追问

像你说得那样做了,用了while循环取出了所有符合条件的,但我把符合条件的代入mysql命令中去却执行不了,你能不能说得详细些

追答

楼下的这位大侠说的很对啊,用它那条sql执行一把,就可以了全部删除了,不用while把它全部取出来之后再删除。那样是没有意义的

本回答被提问者采纳

带有php和mysql的数据表超过10000条记录的大量数据

【中文标题】带有php和mysql的数据表超过10000条记录的大量数据【英文标题】:datatables with php and mysql large amount of data over 10000 records 【发布时间】:2018-03-11 17:59:27 【问题描述】:

我在管理面板脚本中使用了表条带化数据表,当尝试显示来自 mySQL 和 PHP 的大量数据时,加载页面需要花费大量时间。

以下是使用数据表的代码:

<script>

    'use strict'; var Site = window.Site;

    $(document).ready(function($)  Site.run(); );

    (function() 
    
        $(document).ready(function() 
        
            var defaults = $.components.getDefaults("dataTable");

            var options = $.extend(true, , defaults, 
            
                "aoColumnDefs": 
                [ 'bSortable': false, 'aTargets': [-1] ],

                "iDisplayLength": 10,

                "aLengthMenu": 
                [
                  [5, 10, 25, 50, -1],
                  [5, 10, 25, 50, "All"]
                ],

                "sDom": '<"dt-panelmenu clearfix"Tfr>t<"dt-panelfooter clearfix"ip>',
                "oTableTools":  "sSwfPath": "../assets/vendor/datatables-tabletools/swf/copy_csv_xls.swf" 
            );

            $('#exampleTableTools').dataTable(options);
        );
    )();

</script>

如何更快地加载所有记录并在同一加载页面中。

【问题讨论】:

试过使用 Ajax 吗? 没有我用的php类和函数我觉得会一样吗? 不,不一样。阿贾克斯速度很快。谷歌 php 数据表 Ajax。你会得到很多答案 从 MySQL 加载所有记录总是很慢,您是否考虑过分页数据?还是将其限制为某些子集或记录? 不能一次加载所有 10,000 个,否则浏览器将死机,一次必须显示更少的结果,可能是分页,或延迟加载,或 ajax 在滚动时一次加载 100 个???等,限制查询 【参考方案1】:

就像其他人说的那样。如果一次加载 1000 个条目,页面会很慢。 为此,您需要启用分页:

'bPaginate': true

您还应该启用具有大量数据的 bProcessing:

'bProcessing':true

使用服务器端处理以获得更快的速度,并带有外部 .php 文件:

    'bServerSide':true
    'sAjaxSource': 'your_external_get_data.php'

查看文档了解更多信息:http://legacy.datatables.net/usage/features

【讨论】:

【参考方案2】:

如果您需要大量数据,则必须在 php.ini 中设置限制和分页。 获取所有数据后,将数据表设置为限制。 如果您有更大的数据,请在 php 中设置分页。

【讨论】:

它有自动分页,但仍然加载一次所有数据,所以页面很慢

以上是关于php删除mysql 数据库里时间超过1小时的记录的主要内容,如果未能解决你的问题,请参考以下文章

带有php和mysql的数据表超过10000条记录的大量数据

如何使用 php 中的 cron 作业自动删除 mysql 行?

WordPress 计划任务删除超过 48 小时的行

PHP PDO 查询,优化超过 1000 万行的速度性能 MS ACCESS 数据库

请教mysql 如何按时间删除多余的记录?

mysql怎么自动删除超过3天的数据