【问题标题】:php and mysql procedure that runs once per month每月运行一次的php和mysql程序
【发布时间】:2011-12-21 09:33:03
【问题描述】:

我有一个带有 mysql 数据库的 php 构建网站。

我需要一个 sql 函数每月运行一次。

我该怎么做呢?

编辑

真的很抱歉没有说清楚。我没有linux VPS。只是具有 php 和 mysql 功能的基本托管服务。我正在考虑将来购买“真正的”服务器,但现在,还有其他方法吗?

【问题讨论】:

  • 如果您可以使用 MySQL 事件调度程序,它将是一个不错的选择 - 查看 Johan 的答案。

标签: php mysql


【解决方案1】:

似乎每个人都希望你使用 cronjob。
问题在于需要超级用户访问服务器。
我建议改用 MySQL 事件。

请注意,这确实需要 MySQL 数据库中的超级用户访问权限。

见:http://dev.mysql.com/doc/refman/5.1/en/events.html

首先确保启用事件调度器:

SET GLOBAL event_scheduler = ON;

您可以按如下方式设置事件:

DELIMITER $$

CREATE EVENT IF NOT EXISTS event_name ON SCHEDULE EVERY MONTH
STARTS CURRENT_TIMESTAMP + INTERVAL 1 DAY 
ON COMPLETION PRESERVE
ENABLE 
COMMENT 'comment'
DO BEGIN
  //SQL statements here.
END $$

DELIMITER ;

【讨论】:

  • 不错的答案 - 特别是如果 OP 无权设置 CRON 作业。我唯一要添加的是确保启用事件调度程序:SET GLOBAL event_scheduler = ON;
  • 正是我一直在寻找的那种答案。非常感谢!
【解决方案2】:

如果您对服务器有适当的访问权限,我会设置一个CRON 工作。

大多数现代发行版都有一个文件夹/etc/cron.monthly,你可以把你的脚本放在那里,它每个月都会运行。

如果您想在脚本运行时进行更多控制,您可以设置自己的 CRON 条目。

【讨论】:

    【解决方案3】:

    设置一个指向包含 SQL 查询调用的 PHP 文件的 cronjob。

    http://en.wikipedia.org/wiki/Cron

    【讨论】:

      【解决方案4】:

      你可以使用 cronjobs 来解决这个问题 :)。

      问候, 斯蒂芬

      【讨论】:

        【解决方案5】:

        CRON JOB 是解决这个问题的方法。啧啧here.

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-01-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-03-12
          • 1970-01-01
          相关资源
          最近更新 更多