我正在尝试获取记录数,但是无法在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命令来执行此操作。
$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"];
}
尝试一下,
$results=Yii::app()->db->createCommand()
->Select('count(review)')
->from('review_business')
->where('date_created >=DATE_FORMAT(NOW() ,"%Y-11-01")')
->queryScalar();