Yii-如何在yii中编写此查询?

时间:2015-12-02 19:39:36

标签: php mysql sql database yii

我正在尝试获取记录的数量,但我无法在yii中编写此查询。我的SQL查询如下所示。

select count(review) from review_business where (date_created>=DATE_FORMAT(NOW() ,'%Y-11-01')) and (date_created<=DATE_FORMAT(NOW() ,'%Y-12-01'))。我目前正在yii中编写此查询,如下所示。

$results=Yii::app()->db->createCommand()
        ->Select('count(review)')
        ->from('review_business') 
        ->where('date_created'>=DATE_FORMAT(NOW() ,'%Y-11-01'))
        ->queryAll();

但我收到此错误Fatal error: Call to undefined function NOW() in G:\www\ba.dev\protected\views\business\stats.php on line 19。我确信这是因为我的yii查询不佳。请更正我的问题。

2 个答案:

答案 0 :(得分:1)

如果您愿意运行整个查询而不使用活动记录模式您可以尝试使用内置的YII命令来执行此操作。

$query = 'select * from post where category=:category';
$list= Yii::app()->db->createCommand($query)->bindValue('category',$category)->queryAll();

解释:$ query应该是显而易见的, =:category 是出于安全原因动态地将变量 category 绑定到查询。在下一行中,我创建查询并使用 bindValue()函数替换 category 变量的值,最后 queryAll 检索所有记录数据库。希望现在很清楚。 在你的情况下

$query = "select count(review) as result from review_business where (date_created>=DATE_FORMAT(NOW() ,'%Y-11-01')) and (date_created<=DATE_FORMAT(NOW() ,'%Y-12-01'))" ;
$list= Yii::app()->db->createCommand($query)->queryAll();

现在您可以像这样访问结果:

foreach ($rows as $row) {
  $result = $row["result"];
}

答案 1 :(得分:0)

尝试一下

$results=Yii::app()->db->createCommand()
    ->Select('count(review)')
    ->from('review_business') 
    ->where('date_created >=DATE_FORMAT(NOW() ,"%Y-11-01")')
    ->queryScalar();