【发布时间】:2020-05-07 18:34:28
【问题描述】:
我有一个 php 脚本作为 crontab 作业运行。
当我在浏览器中运行文件时,循环执行完美,但在 crontab 中运行时仅执行第一次迭代,没有输出错误。
任何想法为什么?我完全被难住了!!!。
crontab 条目:/usr/bin/php /home/XXX/public_html/directory/cron/cron.php 2>&1 >> /home/XXX/public_html/directory/cron/script_output.log | mail -s "Cronjob PSTART Daily" me@XXX.com
PHP:
<?php
$members = new WA_MySQLi_RS("members", $alpha, 0);
$members->setQuery("SELECT
registration.*,
child_base_smqf.child_base_smqf_id,
child_base_smqf.child_base_smqf_uid,
child_base_smqf.child_base_smqf_open_timestamp,
child_base_smqf.child_base_smqf_close_timestamp,
parent_base_smqf.parent_base_smqf_id,
parent_base_smqf.parent_base_smqf_uid,
parent_base_smqf.parent_base_smqf_open_timestamp,
parent_base_smqf.parent_base_smqf_close_timestamp
FROM registration
LEFT JOIN child_base_smqf ON registration.rego_parent_uid = child_base_smqf.child_base_smqf_uid
LEFT JOIN parent_base_smqf ON registration.rego_parent_uid = parent_base_smqf.parent_base_smqf_uid
WHERE
registration.rego_parent_acc_status != 0 AND # NOT OPTED OUT
child_base_smqf.child_base_smqf_close_timestamp IS NOT NULL AND # CHILD BASELINE SURVEY HAS BEEN COMPLETED
parent_base_smqf.parent_base_smqf_close_timestamp IS NULL # PARENT BASELINE SURVEY HAS NOT BEEN COMPLETED
GROUP BY `rego_parent_uid`
ORDER BY `rego_id` ASC");
$members->execute();
while (!$members->atEnd()) {
// !DEFINE VARIABLES
require('cronVariables.php');
echo $members->getColumnVal("rego_parent_uid") . ' - ' .$members->getColumnVal("rego_parent_fname") . " STAMP - " . $members->getColumnVal("child_base_smqf_close_timestamp") . " baseline email reminders - " . $parent_base_surveyReminderTrigger . "<br>";
require('parentBaseReminderEmails.php');
$members->moveNext();
?>
【问题讨论】:
-
如果你在循环中触发它,首先使用 requiere_once() 而不是 require ! 2.)确保您的包含/包含路径是正确的 3)查看您的日志以获取更多信息