Yii-如何在Yii中编写这个查询?

izj3ouym  于 2022-11-09  发布在  其他
关注(0)|答案(2)|浏览(175)

我试图获取记录的数量,但是我无法在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查询不好。请纠正我的查询。

wfsdck30

wfsdck301#

如果您希望运行整个查询而不使用活动记录模式,您可以尝试使用内置的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"];
}
w80xi6nr

w80xi6nr2#

试试这个,

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

相关问题