【问题标题】:Yii-How to write this query in yii?Yii-如何在 yii 中编写这个查询?
【发布时间】:2015-12-02 19:39:35
【问题描述】:

我正在尝试获取记录数,但我无法在 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 查询不佳。请更正我的问题。

【问题讨论】:

    标签: php mysql sql database yii


    【解决方案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"];
    }
    

    【讨论】:

    • 如何回显结果?我想展示结果。所以我像这样使用了foreach循环。 foreach($list as $l){echo $l;} 我得到了错误,数组到字符串的转换。
    • 查看我更新的答案,不要忘记包含这部分:select count(review) as result from .....
    • 我正在关注这个链接,yiiframework.com/doc/guide/1.1/it/database.query-builder 但我没有找到你上面告诉我的方式。
    • 哦,请稍等
    • 在标记你的答案正确之前,如果你不介意的话,我希望你解释一下上面的代码。
    【解决方案2】:

    试试这个,

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

    【讨论】:

      猜你喜欢
      • 2014-06-06
      • 1970-01-01
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多