yii で cron ジョブをセットアップするためのガイドラインとして このサイトを使用しています。
TableA の現在のコントローラー アクション (更新) は、特定の値 (Value2) を "A" から "B" に変更すると、SQL トランザクションを実行してデータベースに TableB を設定します。
これを達成するために現在使用しているコードは次のとおりです。これは、コントローラー A の更新アクションにあります。
$connection = yii::app()->db;
$sql1 = "INSERT INTO TableB (value1, value2, value3)
VALUES(:val1, :val2, :val3)";
$command=$connection->createCommand($sql1);
$command->bindValue(":val1", $model->tableAId);
$command->bindValue(":val2", 'B');
$command->bindValue(":val3", $model->Attribute2);
$command->execute();
bindValue を使用しているので、値を別のテーブルに入力するのは簡単です。このロジックを cron ジョブに移動すると、同じことをどこから開始すればよいかわかりません。
では、これは cron ジョブで同様のコードを使用しても同じように機能しますか?
public function run($args)
{
$transactions = TableA::model()
->findBySql('SELECT * FROM `TableA` '.
'WHERE `value2` = A '.
'AND TO_DAYS(`DateCreated`)+3 < TO_DAYS(NOW())');
foreach ($transactions as $transaction) {
$connection = yii::app()->db;
$sql1 = "INSERT INTO tableB (value1, value2, value3)
VALUES(:val1, :val2, :val3)";
$command=$connection->createCommand($sql1);
$command->bindValue(":val1", $model->tableAId);
$command->bindValue(":val2", 'B');
$command->bindValue(":val3", $model->Attribute2);
$command->execute();
}
}
TableB に新しいレコードを作成するだけでなく、TableA の value2 を "A" から "B" に更新する必要があります
既にこの cron ジョブを実行しようとしましたが、結果が得られず、トラブルシューティングの方法もわかりません。