Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CDbCommand:减少列本身的值_Php_Yii - Fatal编程技术网

Php CDbCommand:减少列本身的值

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'=

我想使用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'=>':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)
    );

伟大的真有趣。谢谢你的回答!