【发布时间】:2013-11-28 20:50:18
【问题描述】:
我最近添加了一个 cron 作业来每天执行一个 PHP 文件,但是数据库没有更新,因为它应该在 PHP 文件中。我假设这是因为 cron 作业没有运行。
这是我为 cronjob 输入的内容:
@daily /etc/cron.php (located by executing crontab -l)
-- php file --
$db = new PDO("dsn", "username", "password");
$db->exec("UPDATE subscriptions SET exp_date = exp_date - 1 WHERE payment_status = 'Completed'");
每当用户进行购买时,字段 exp_date 都会设置为 32,但不会通过我现有的 cronjob 减去 1。
任何帮助将不胜感激。
【问题讨论】:
-
用
php /etc/cron.php检查你的脚本是否在控制台中运行良好,如果你有一些路径使用例如$_SERVERvar你会得到错误。 -
在检查数据库后确实有效
-
你在 crontab 的命令前加了
php吗?@daily php /etc/cron.php -
哦,它必须像@daily php /etc/cron.php ?
-
是的,“php”应该是php的可执行文件,可能在
/usr/bin/php,否则crontab会尝试作为unix命令执行