Float değeri ile Doctrine_Query güncelleme

2 Cevap php

Ben Kullanıcı dengesini artırmak gerekiyor, bu yüzden do:

Doctrine_Query::create()->from('User')->update('balance', 'balance + 0.15')->execute();

And I got an error "Unknown component alias 0". I think its because of 0.15 So how can I update (using DQL) balance without additional SELECT queries to User's table to fetch his balance, calculate new balance and do query like Doctrine_Query::create()->from('User')->update('balance', '?', $new_balance)->execute();

2 Cevap

Bu çözüm MySQL için iyi çalışıyor!

Doctrine_Query::create()->update('Users')->set('balance', 'balance + "0.15"')->execute();

Sizin varsayım doğru görünüyor. Doktrin 0 bir tablo takma olduğunu düşünüyor. Eğer kullanarak denediniz set()?

Dokümanlar:

$q = Doctrine_Query::create()
    ->update('Account')
    ->set('amount', 'amount + 200')
    ->where('id > 200');
// If you just want to set the amount to a value
$q->set('amount', '?', 500);
echo $q->getSqlQuery();

// UPDATE account
// SET amount = amount + 200
// WHERE id > 200