$criteria = new CDbCriteria(); $criteria->addCondition("customid = :customid"); $criteria->params= array(':customid'=>$customid); if(trim($groupid)!=""){ $criteria->addCondition ('groupid' = :groupid);
<pre name="code" class="php"><span style="white-space:pre"> </span>$criteria->params= array(':groupid'=>$groupid);
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
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; }
以上就介紹了Invalid parameter number: number of bound variables does not match number of tokens,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。