重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如果你准备按天删除数据的话,在保存数据的时候最好是增加一个日期字段addDate,而这个日期字段的默认值就是CURRENT_DATE(mysql中,CURRENT_DATE获得的是
曲沃网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。成都创新互联自2013年创立以来到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联。
20100728
这样的日期值),如果这个字段没用,大不了不用就行了。
那么在删除的时候就好办了,用
delete
from
tbName
where
CURRENT_DATE-addDate
=
3;
就可以了,我刚刚在mysql中测试通过。
mysql定时任务
自 MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录、对数据进行汇总等等),来取代原先只能由操作系统的计划任务来执行的工作。更值得 一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精 确到每分钟执行一次。对于一些对数据实时性要求比较高的应用(例如:股票、赔率、比分等)就非常适合。
如:每隔30秒将执行存储过程test,将当前时间更新到examinfo表中id=14的记录的endtime字段中去.
CREATE PROCEDURE test ()
BEGIN
update examinfo SET endtime = now() WHERE id = 14;
END;
create event if not exists e_test
on schedule every 30 second
on completion preserve
do call test();
2. windows、linux 的定时任务 这个就不举例了,通过脚本定时去调用mysql执行
两种方案:
一种是正统方案,把SQL语句提交给运维人员,他们会处理,一般是用crond解决。
另外,有一种很邪行的办法,不推荐,但无可奈何的时候可以用一下。
如果有某个文件,比如comm.php是被所有文件引用的,在它里面加一段:
if (mt_rand(1, 1000) == 1) {
//run your sql
}
其目的就是按照千分之一的概率去执行删除数据的动作。
一方面确实可以删除数据,另一方面也避免了每次执行PHP页面都占用数据库资源。
可以适当监控一下,调整成合适的执行概率。
或者,把这一小段代码放到index.php里面也可以。
1、创建userinfo_update.php,用于查询用户信息,先显示信息,在修改:先通过GET获取用户编号查询用户信息:$sql = "select * from user_info where user_id='".$_GET['userId']."'"; $result = mysql_query($sql,$con);if($row = mysql_fetch_array($result)){}。
2、页面效果。
3、创建update.php,用于修改用户信息:使用到了mysql_affected_rows() 函数返回前一次 MySQL 操作所影响的记录行数。//通过post获取页面提交数据信息$userId = $_POST[userId];
$userName = $_POST[userName];$userAge = $_POST[userAge];
4、$sql = "update user_info set user_name='".$userName."',user_age=".$userAge." where user_id='".$userId."'";mysql_query($sql,$conn);//执行SQL$mark = mysql_affected_rows();//返回影响行数$url = "userinf_select.php"; 。
5、运行结果。
delete from table_name where datedate_sub(date(now()),interval 1 month);
date是data()函数记录的那个字段名。
date_sub(date(now()),interval 1 month) 你这个应该是php的函数吧,函数肯定要这么写啊,而且还是datetime类型,要单引号的
sql ="delete from table_name where datetime '{date_sub(date(now()),interval 1 month)}'";