В моей Yii приложения, у меня есть модель, которая представляет siteconfig
таблицу и четыре колонки:ActiveRecord поиск возвращает «Синтаксическая ошибка или нарушение прав доступа» ошибка
- целого
config_id
, - строку
key
, - строка
value
, - строка
update_time
.
Я создал модель с использованием Gii (чтобы убедиться, что я не допущу ошибок). Я не публиковал весь код здесь, потому что это 100% немодифицировано мной, стандартный код модели, созданный Gii. Так как моя проблема связана с поиском, я только опубликовать важную часть сгенерированного кода (search()
метода):
public function search()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('config_id',$this->config_id);
$criteria->compare('key',$this->key,true);
$criteria->compare('value',$this->value,true);
$criteria->compare('update_time',$this->update_time,true);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
Я пытаюсь использовать сгенерированную модель в обычном поиске Yii ActiveRecord так:
$etona = new SiteConfigurationRecord();
$crit = new CDbCriteria();
$crit->select = "value";
$crit->condition = "key=:key";
$crit->params = array(":key"=>"sitename");
$etona = $etona->find($crit);
Но, вместо того, чтобы получать ожидаемые результаты поиска, происходит странное (для меня) ошибка:
CDbCommand не удалось выполнить SQL заявление: SQLSTATE [42000]: Ошибка синтаксиса или нарушение доступа: 1064 У вас возникла ошибка в синтаксисе SQL ; проверьте руководство, соответствующее версии вашего MySQL-сервера , для правильного синтаксиса, используемого рядом с 'key =' sitename 'LIMIT 1' в строке 1. Выполненный SQL-оператор: SELECT value FROM
siteconfig
t
WHERE key =: key LIMIT 1
Где я ошибся?