在没有用户执行的情况下重置MySQL字段值

时间:2009-05-23 19:29:08

标签: php mysql

我需要在午夜自动重置MySQL Field值。它是表中特定行的特定列。我知道如何在PHP中执行此操作,但我不知道如何在午夜执行PHP脚本而无需自己执行此操作。你有任何可行的解决方案吗?

编辑:-------------------- 最好不要使用Cron Jobs。

4 个答案:

答案 0 :(得分:7)

如果您在Linux上运行,则可以使用cronjob

在大多数发行版上都有一个名为crontab的命令,可以为您安排任务以及您需要的特定格式:

0 0 * * * php /path/to/file.php

修改 在编辑你之前写下这个:p我不确定还有其他办法。你有特殊的理由不使用cronjob吗?

如果php文件被标记为可执行文件,你可能甚至不需要指定php部分,即

0 0 * * * /path/to/file.php

从linux命令行

执行“chmod + x /path/to/file.php”

答案 1 :(得分:1)

也有基于网络的cron服务。基本上您设置了一个帐户,然后他们定期访问您选择的URL。在您的服务器上,您可以设置一个页面来完成您需要完成的任务。最好给它一个不太可能找到的名字,如myjob789273634ahhh8s2nhw8sghusgf874wfu.php。你明白了。 (请记住,PHP脚本在30秒之后会超时。)

这是一个谷歌搜索: ** oops我是新手,所以我显然无法发布网址。只需搜索“基于网络的cron”。

祝你好运 / 0

答案 2 :(得分:0)

您可以在您的程序中编写一个作业调度程序,以类似cron的方式运行作业。它需要用户与系统交互才能触发,但根据您的需要,它可能已经足够好了。这比仅运行cronjob要复杂得多,并且不能确保完美的计时(因为在用户点击页面之前它不会运行)。

您可能需要在数据库中添加一个表,该表将列出作业,完成所需的时间以及锁定标志以避免并发尝试运行作业。每次运行脚本时,都要检查此表是否有过期作业,并根据需要运行它们。

答案 3 :(得分:0)

询问如何在没有cron(或Windows上的计划任务)的情况下每晚同时可靠地设置脚本,就像询问如何在没有服务器端语言的情况下创建动态网站一样。

如果您的应用完全依赖于在午夜运行的脚本,则需要使用cron。如果您的用户有托管公司(愚蠢地)不允许使用cron,那么他们将会失去运气。