如何编写PHP / CRON脚本来自动执行任务

时间:2012-10-21 00:42:21

标签: php sql cron mysqli

我在下面有一个“会话”表:

SessionId(Auto) SessionName  SessionDate SessionTime Duration  Active
1               AASEA        21-09-2012  09:00:00    01:00:00  1
2               SDERF        11-09-2012  10:00:00    01:00:00  1
3               DERSD        30-11-2012  12:00:00    01:30:00  1

现在我想要做的是使用CRON将上面的会话设置为“活动” - 如果会话在2012年10月21日之前或当前年初提前一周举行,则为0。因此,在上面的会话表中,它应该通过将“Active”更改为0来使前两行处于非活动状态。第三行不会明显改变,因为它的开始日期稍晚。因此,该会议将在2013年10月21日之前不会自动生效。

所以我想知道因为我之前没有使用过CRON,这是一个微妙的任务,因为它需要进行测试以确保它的工作原理,是否有人知道如何编写php / CRON脚本以便它能够以下内容:

  • 对于所有会话,将“有效”值设置为0,开始日期恰好是一周或当前年度的10月21日之前?
  • 必须能够知道当前年份是自动的
  • 此程序每年每年的10月21日发生

由于

1 个答案:

答案 0 :(得分:0)

将此脚本写入php文件并将其直接保存在应用程序中的某个位置。

<?php
$con = mysql_connect("localhost","root","password");
$db = mysql_select_db("your_database");


$createDate = mktime(0,0,0,10,21,date("Y"));
$selectedDate =  date('d-m-Y', ($createDate));
$sql = mysql_query("UPDATE Session SET Active = 0 WHERE DATE_FORMAT(SessionDate,'%Y-%m-%d' ) <= '".$selectedDate."'");

?>

现在您需要登录您的托管网站 - cPanel并访问CRON作业。在那里你需要设置一个新的CRON作业。这是一个如何设置一个cron作业的教程 - http://www.youtube.com/watch?v=0OBvGbyj15Q

只需使用上面编写的脚本替换视频中使用的网址,它就可以正常使用。确保替换凭据和数据库。

您可以在每年的10月21日设置cron作业,也可以每天运行。我们的脚本无论如何都会验证日期,所以如果你每天都运行cron作业也没问题。这不是一个昂贵的查询,所以使用的资源是最低限度的。