gpt4 book ai didi

php - 数据库连接在 Yii cronjob 中不起作用

转载 作者:行者123 更新时间:2023-11-30 23:11:42 27 4
gpt4 key购买 nike

我已经关注了 Yii cron setup instruction通过调用命令配置作业(在 CLI(控制台)模式下运行 PHP)。cron 作业按设计工作,但当我处理 AR 模型或查询 SQL 时,脚本/命令不起作用。

我在 config/cron.php 中设置了数据库连接:

...
'components'=>array(
...
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=blogandt_yiiapp',
//mysql:host=127.0.0.1;port=3306;
'emulatePrepare' => true,
'username' => '...',
'password' => '..',
'charset' => 'utf8',
'tablePrefix' => 'yiiapp_',
'class' => 'CDbConnection'
),
),

TestCommand.php:

<?php
class TestCommand extends CConsoleCommand {
public function run($args) {
$dateObj = new DateTime('NOW'); //date("Y-m-d");
$fromTime = date_format($dateObj, "Y-m-d H:m:i");
date_modify($dateObj, '+5 days');
$toTime = date_format($dateObj, "Y-m-d H:m:i");
$message = "Time span is from {$fromTime} to {$toTime} ";
mail('xyz@gmail.com', 'TestCommand run', $message, '');

$criteria = new CDbCriteria;
$criteria->addBetweenCondition('time', $fromTime, $toTime);
$notification = DocEventNotification::model()->findAll($criteria);
// OR
//$query = 'SELECT n.UserId, n.EventId FROM yiiapp_doc_event_notification n';
//$query .= "WHERE (n.time BETWEEN '{$fromTime}' AND '{$toTime}') AND n.turn = '1' ";
//$rows = Yii::app()->db->createCommand($query)->queryAll();
mail('xyz@gmail.com', 'TestCommand after DB query', $message, '');
}
} ?>

当我不通过 AR 或直接发送电子邮件来处理数据库时,而使用数据库查询则不会。我已经在 Controller 中检查了这些 AR 查询 - 它们工作正常。怎么了?

编辑

实际上,当通过 $rows = Yii::app()->db->createCommand($query)->queryAll(); 查询时,第一封邮件被发送,而第二封(数据库查询后)不是。

编辑2

我记下了 cron.log 中的一个片段。似乎 PDO 对象有问题。

 2013/10/21 23:25:00 [error] [php] include(PDO.php): failed to open stream: No such file or       directory (/home/blogandt/domains/blogandtraffic.com/public_html/framework/YiiBase.php:427)

我在配置 Yii 时没有包含 PDO 支持。什么解决方案?

最佳答案

这可能是串联的问题。 n 后面少了一个空格

$query = 'SELECT n.UserId, n.EventId FROM yiiapp_doc_event_notification n ';
$query .= "WHERE (n.time BETWEEN '{$fromTime}' AND '{$toTime}') AND n.turn = '1' ";

试着告诉我们发生了什么。

关于php - 数据库连接在 Yii cronjob 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19513130/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com