在我的 Yii 应用程序中,我有一个代表siteconfig
表格的模型,它有四列:
- 整数
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]: Syntax error or access violation: 1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'key='sitename' LIMIT 1' 附近使用正确的语法。执行的 SQL 语句是:SELECT value FROM
siteconfig
t
WHERE key=:key LIMIT 1
我哪里做错了?