Php CDbCommand:减少列本身的值
我想使用CDbCommand运行SQL脚本:Php CDbCommand:减少列本身的值,php,yii,Php,Yii,我想使用CDbCommand运行SQL脚本: update user set point = point - 2 where user_id = 13 and role_id = 2; 以及我使用Yii CDbCommand的代码: Yii::app()->db->createCommand()->update( 'user', array('point'=>'point + 2'), array('user_id' => 13, 'role_id'=
update user set point = point - 2 where user_id = 13 and role_id = 2;
以及我使用Yii CDbCommand的代码:
Yii::app()->db->createCommand()->update(
'user',
array('point'=>'point + 2'),
array('user_id' => 13, 'role_id'=>':role'),
array('role'=>2)
);
然后我得到一个错误:
CDbCommand failed to execute the SQL statement: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens. The SQL statement executed was: UPDATE `user` SET `point`=:point
有什么问题吗?这样可以:
$update = Yii::app()->db->createCommand()
->update('user',
array(
'point'=>new CDbExpression('point + 2')
),
'id=:id AND role_id =:role_id',
array(':id'=> 13, ':role_id' => 2)
);
伟大的真有趣。谢谢你的回答!