Php 使用浮点值更新查询
我需要增加用户的余额,所以我会:Php 使用浮点值更新查询,php,doctrine,dql,Php,Doctrine,Dql,我需要增加用户的余额,所以我会: Doctrine_Query::create()->from('User')->update('balance', 'balance + 0.15')->execute(); 我得到一个错误“未知组件别名0”。我想这是因为0.15 那么,我如何更新(使用DQL)余额,而不需要对用户的表进行额外的SELECT查询来获取他的余额,计算新余额,并执行类似于Doctrine_query::create()->from('User')->update(
Doctrine_Query::create()->from('User')->update('balance', 'balance + 0.15')->execute();
我得到一个错误“未知组件别名0”。我想这是因为0.15
那么,我如何更新(使用DQL)余额,而不需要对用户的表进行额外的SELECT查询来获取他的余额,计算新余额,并执行类似于
Doctrine_query::create()->from('User')->update('balance','?',$new_balance)->execute()的查询代码>你的假设看起来是对的。条令认为0
是一个表别名。您是否尝试过使用set()
从文档中:
$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
此解决方案适用于MySQL
Doctrine_Query::create()->update('Users')->set('balance', 'balance + "0.15"')->execute();
我需要增加用户的余额,而不是直接设置。当使用整数值时,一切正常,但float不正常。现在,我将使用查询::create()->update('Users')->set('balance','balance+'0.15')->其中('id',$id)->execute();这似乎是一个很好的解决方案。为什么要将数字(0.15
)视为字符串(“0.15”
)?