在 Yii php 框架中执行查询问题


<?php 
   $month_total = Prices::model()->findAllBySql("SELECT  FORMAT(SUM(p.choice_price),2) as total FROM prices p WHERE MONTH(p.choice_date) = MONTH(CURRENT_DATE())");
   echo "<pre>"; var_dump($month_total); echo "</pre>"; exit();
?>

如果给出所需的结果,则查询有效,但var_dump的结果为:

array(1) {
  [0]=>
  object(Prices)#309 (12) {
    ["price"]=>
    NULL
    ["_new":"CActiveRecord":private]=>
    bool(false)
    ["_attributes":"CActiveRecord":private]=>
    array(0) {
    }
    ["_related":"CActiveRecord":private]=>
    array(0) {
    }
    ["_c":"CActiveRecord":private]=>
    NULL
    ["_pk":"CActiveRecord":private]=>
    NULL
    ["_alias":"CActiveRecord":private]=>
    string(1) "t"
    ["_errors":"CModel":private]=>
    array(0) {
    }
    ["_validators":"CModel":private]=>
    NULL
    ["_scenario":"CModel":private]=>
    string(6) "update"
    ["_e":"CComponent":private]=>
    NULL
    ["_m":"CComponent":private]=>
    NULL
  }
}

知道我为什么得到这个吗?我想使用yii中的finds函数

试试这样,

 foreach ($month_total as $t)
  echo $t['total'];

尝试这样做

$c = new CDbCriteria();
$c->alias = "p";
$c->select = "FORMAT(SUM(p.choice_price),2) as total";
$c->condition = "MONTH(p.choice_date) = MONTH(CURRENT_DATE())";
$month_total = Prices::model()->findAll($c);