2013-02-25 3 views
1

У меня эта проблема с обновлением CakePHP. Я пытаюсь обновить строку в моей БД с этой функцией (см):Функция cakephp для обновления строки не работает

function updateRow($amount, $user_id){ 

    $user_balance = $this->getUserBalance($user_id); 

    //now update 
    $balance['Balance']['id'] = $user_balance['Balance'][id]; 
    $balance['Balance']['amount'] = $user_balance['Balance'][amount] + $amount; 

    $this->Balance->save($balance); 
} 

Если я называю это один раз, как:

$this->updateRow(100,5); 

это все нормально. Но если я пытаюсь вызвать это два или более раз, как:

$this->updateRow(100,5); 
$this->updateRow(200,5); 
$this->updateRow(150,5); 

функция была вызвана, но только последнее обновление было фактически сделано в дб !! (например, начальная сумма была равна 100. В конце трех вызовов ожидаемое значение было 550, но это 250!)

У вас есть решения для этого? thx заранее

+0

Почему бы не использовать атомные запросы здесь? updateAll() в вашем случае - см. другие вопросы и решения, которые сделают это дубликат. tip "increment + updateAll" в качестве ключевых слов. – mark

+0

Я искал это первым, но все решения, похоже, не работают для меня ... Я пытаюсь использовать метод updateAll, используя метод SQL-запросов, но я не могу решить свою проблему. Любое предложение? – NikoDev

+0

Какой код вы пробовали для updateAll()? – mark

ответ

Смежные вопросы