У меня эта проблема с обновлением 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 заранее
Почему бы не использовать атомные запросы здесь? updateAll() в вашем случае - см. другие вопросы и решения, которые сделают это дубликат. tip "increment + updateAll" в качестве ключевых слов. – mark
Я искал это первым, но все решения, похоже, не работают для меня ... Я пытаюсь использовать метод updateAll, используя метод SQL-запросов, но я не могу решить свою проблему. Любое предложение? – NikoDev
Какой код вы пробовали для updateAll()? – mark