【发布时间】:2016-09-01 21:14:17
【问题描述】:
所以基本上我有这个在 godaddy php 5.4 上工作的 cronjob 脚本,但是在不同的主机上它不起作用,也尝试了不同的 php 版本。我有正确的 cron 路径,主机支持说我做到了,甚至向我展示了日志。也许这个脚本有问题?它基本上为用户帐户添加能量点。
<?php
include "../core.php";
//Fuel Refill (by default every 10 minutes)
$sqlusers = mysql_query("SELECT * FROM users WHERE banned='No'");
while ($rowuser = mysql_fetch_assoc($sqlusers)) {
if ($rowuser['fuel'] < $rowuser['fuelcapacity']) {
$userfuelrefill = mysql_query("UPDATE users SET fuel=fuel+1 WHERE username='$rowuser[username]'");
}
}
echo '<meta http-equiv="refresh" content="0;url=../garage">';
?>
【问题讨论】:
-
为什么一个 cron 脚本有 html?你可以从命令行运行它吗?你使用的 cron 调用是什么?这包括我的猜测-尝试绝对路径。为什么要循环,你不能只运行:
UPDATE users SET fuel=fuel+1 WHERE banned='No' and fuel < fuelcapacity -
向我们展示 crontab 行。正如@nogad 所说,为什么是 html?
-
我的路径是:
/usr/local/bin/php /home/USERNAME/public_html/cron/fuelrefill.php我不是程序员,我从某人那里购买了这个脚本,这个,不知道为什么它可以在一台主机上运行而不是在另一台主机上运行...... -
很有可能您的新主机不支持(或启用)mysql_* 方法,因为根据您的PHP 版本,它们已被弃用或删除。 @nogad 确实提供了一个非常合理的解决方案,以提高效率。
-
这个脚本可以减少到 3 行。但首先我会检查包含和@Blake 的建议