phpMyAdmin (mySQL) で非常に奇妙なことが起こっています...
状況:
「count」という INT 値を保持するフィールドが 1 つしかないテーブルがあります。count はもともと 0 に設定されていました。cron ジョブは 1 時間ごとに 'count' をインクリメントする php スクリプトを呼び出します(SET count = count + 1)
。
問題:
phpMyAdmin でテーブルを開き、すぐにブラウザを更新すると、問題が発生することがあります。1 分間放置してからブラウザを再度更新すると、さらに数百回インクリメントされていることがわかります。私のcronジョブを呼び出して「カウント」をインクリメントする無限ループはどこかにありますか? (そうは思わないでください。なぜなら、crob php スクリプトが呼び出されたときにメールを受け取るように更新したのに、電話がかかってこないからです...)
このようなことが誰かに起こったことがありますか?
CRON 文字列:
*/15 * * * * /usr/bin/php -q /home/account_name/cron/cron.php test
php スクリプト:
<?php
class TestCommand extends CConsoleCommand {
private $connection;
public function run($args) {
// Increment counter
$this->connection=Yii::app()->db;
$sql="UPDATE count_converts SET count=count+1 WHERE id=1";
$command=$this->connection->createCommand($sql);
$command->execute();
}
}
?>
更新:
謎が解決しました:これは、別の場所でネストされた for ループが原因であることがわかりました (両方のループで $i が使用されていました)...