Heim >Backend-Entwicklung >PHP-Tutorial >Ungültige Parameternummer: Anzahl der gebundenen Variablen stimmt nicht mit der Anzahl der Token überein
$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>} Beim Schreiben der Abfrageoperation des Yii-Frameworks habe ich mit CDbCriteria immer wieder einen Fehler gemeldet:
Ungültige Parameternummer: Anzahl der gebundenen Variablen stimmt nicht mit der Anzahl der Token überein.
Dieser Fehler bedeutet, dass die von Ihnen abgefragten Bedingungen nicht mit der Anzahl der Parameter übereinstimmen.
Wenn Sie sicher sind Beachten Sie, dass im obigen Code ein unvorsichtiger Fehler vorliegt. Wenn Sie mich hinzufügen, um die Bedingungen von goupid zu erfüllen, habe ich am Ende nur einen Parameter, nämlich: goupid, und die gesamte Zeile: customid =$customid wird überschrieben, daher besteht die Lösung darin, eine Änderung in der bedingten Anweisung goupid vorzunehmen:
$criteria->params= array(':customid'=>$customid,':groupid'=>$groupid);
Oder es wäre besser, diese Schreibweise zu verwenden:
<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; }
Das Obige führt eine ungültige Parameternummer ein: Die Anzahl der gebundenen Variablen stimmt nicht mit der Anzahl der Token überein, einschließlich des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.