我的控制器中有以下更新代码。 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'
答案 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 ));