0
Я пытаюсь выполнить поиск в одном из моих таблиц на основании заданного критерия, как так:CActiveRecord :: FindAll бросает исключение
$id = 1;
$criteria = new CDbCriteria();
$criteria->addCondition("usr_currency=:currency");
$currencies = User::model()->findAll($criteria, array(':currency' => $id,));
Я получаю CDbException
:
CDbCommand failed to execute the SQL statement:
SQLSTATE[HY093]: Invalid parameter number: no parameters were bound.
The SQL statement executed was:
SELECT * FROM `user` `t`
WHERE usr_currency=:currency
Где as, это работает:
$id = 1;
$criteria = new CDbCriteria();
$criteria->addCondition("usr_currency=:currency");
$criteria->params = array(':currency' => $id,);
$comments = User::model()->findAll($criteria);
Что не так с первым фрагментом кода?
А, я вижу. Doc для 'findAll()' ничего не упоминает в этом роде :) –
Из объяснения 'CActiveRecord :: findAll()': находит все активные записи, удовлетворяющие указанному условию. См. Find() для подробного объяснения условий $ condition и $ params. :) – topher