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

问题描述 投票:0回答:2

我正在尝试获取记录数,但是无法在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。我敢肯定这是因为我的查询不佳。请更正我的查询。

php mysql sql database yii
2个回答
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"];
}

0
投票

尝试一下,

$results=Yii::app()->db->createCommand()
    ->Select('count(review)')
    ->from('review_business') 
    ->where('date_created >=DATE_FORMAT(NOW() ,"%Y-11-01")')
    ->queryScalar();
© www.soinside.com 2019 - 2024. All rights reserved.