Призрачное увеличение поля INT в таблице MySQL? - PullRequest
0 голосов
/ 13 сентября 2011

Очень странные вещи, происходящие в phpMyAdmin (mySQL) ....

Ситуация:
У меня есть таблица только с одним полем, которое содержит значение INT, называемое «count». Первоначально для count было установлено значение 0. Задание cron вызывает скрипт php каждый час, что увеличивает значение count на единицу (SET count = count + 1).

Проблема :
Проблема может наблюдаться, когда я открываю таблицу в phpMyAdmin, а затем немедленно обновляю браузер: я вижу, что «count» был увеличен примерно в 20 раз за секунду. Если оставить его в покое на одну минуту, а затем снова обновить браузер, это показывает, что он был увеличен в сотни раз! Какой-то бесконечный цикл где-то вызывает мою работу cron и увеличивает значение count? (Не думаю, потому что я обновил скрипт phb crob, чтобы он отправлял мне электронное письмо, когда он вызывается, и я не получаю звонков ...)

Что-нибудь подобное случалось с кем-нибудь?

Строка 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();
    }
 }

?>

ОБНОВЛЕНИЕ:
Тайна разгадана: выяснилось, что это произошло из-за плохого вложенного цикла где-то еще (оба цикла использовали $ i) ...

1 Ответ

0 голосов
/ 13 сентября 2011

Почему тами разрыв строки в вашей строке cron?Измените его на

* / 15 * * * * / usr / bin / php -q /home/account_name/cron/cron.php test

...