CDbCommand无法执行SQL语句。

时间:2014-05-26 07:24:25

标签: php mysql yii

我的控制器中有以下更新代码。 sql查询正确执行,我可以在后端看到更新的结果。 但是在执行显示错误时,' CDbCommand无法执行SQL语句'。 有没有其他方式来写这个陈述。控制器代码如下。

public function actionactiveuser()
 {          

 $user_id=$_GET['id'];
 $query = "UPDATE user SET status = '1' WHERE id = '$user_id'";
 Yii::app()->db->createCommand($query)->queryAll();
 $this->render('login');    
 }

显示错误:

CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error. The SQL statement executed was: UPDATE user SET status = '1' WHERE id = '80'

1 个答案:

答案 0 :(得分:4)

更改此

Yii::app()->db->createCommand($query)->queryAll();

Yii::app()->db->createCommand($query)->execute();

queryAll()用于选择查询。 execute()适用于更新和插入查询

BTW 为了安全起见,你应该做这样的事情

$query = "UPDATE user SET status = :status' WHERE id = :id";
 Yii::app()->db->createCommand($query)->execute(array(':status' => '1',':id'=>$user_id ));