在我的 Yii 应用程序中,我有一个模型代表siteconfig
表并有四列:
- integer
config_id
,
- string
key
,
- string
value
,
- string
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 服务器版本对应的手册
在第 1 行的 'key='sitename' LIMIT 1' 附近使用正确的语法。
执行的 SQL 语句是: SELECT value FROMsiteconfig
t
WHERE key=:key LIMIT 1
我哪里做错了?