Invalid parameter number: number of bound variables does not match number of tokens

	$criteria = new CDbCriteria();
  	$criteria->addCondition("customid = :customid");
  	$criteria->params= array(':customid'=>$customid);
  	if(trim($groupid)!=""){
  		$criteria->addCondition ('groupid' = :groupid);
               $criteria->params= array(':groupid'=>$groupid);

}

}


在寫Yii框架的查詢操作時,使用CDbCriteria一直在報一個錯:

Invalid parameter number: number of bound variables does not match number of tokens.

這個報錯的意思是你查詢的條件和參數個數不相符;

如果自信觀察下我上面的代碼,會發現有個大意的錯誤了的,加入我符合goupid的條件,那麼最終我的參數就只有一個,就是 :goupid,而全線的:customid =$customid就會被覆蓋了,所以解決的辦法就是在goupid條件語句裏面做個更改:

$criteria->params= array(':customid'=>$customid,':groupid'=>$groupid);

或者使用這種寫法會更好:

<span style="white-space:pre">	</span>$criteria = new CDbCriteria();
  	$criteria->addCondition("customid = :customid");
  	$criteria->params[':customid'] = $customid;
  	if(trim($groupid)!=""){
  		$criteria->addCondition ("groupid = :groupid");
  		$criteria->params[':groupid'] = $groupid;
  	}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章