2015-12-15 43 views
1

我想使用查询构建器yii框架从2个表中选择数据。所以我的脚本如下无法使用查询构建器选择数据

$result = $command->select(array('a.parameter_name', 'a.unit', 'b.result', 'b.normal_value')) 
       ->from('parameter a') 
       ->join('test b', 'a.parameter_id = b.parameter_id') 
       ->where('b.noRM='.$_POST['no_rm']) 
       ->queryAll(); 

当我echo的结果,我只得到parameter_id

foreach($result as $row){ 
    $name = $row['parameter_name']; 
    $unit = $row['unit']; 
    $normal_value = $row['normal_value']; 
} 

我得到这个错误。

错误500

未定义指数:PARAMETER_NAME。

我该如何解决?

+0

请出示完整的方法 – SiZE

+0

可能是你需要调用'$命令 - >重设() '在创建新的查询之前。自v1.1.16 – SiZE

回答

0

select()无论array或串的工作,但在地方$command变量的使用Yii::app()->db->createCommand(),作为$command抱你正在使用的选择,插入旧CDbConnection对象。

$result = Yii::app()->db->createCommand()->select('a.parameter_name, a.unit, b.result, b.normal_value') 
       ->from('parameter a') 
       ->join('test b', 'a.parameter_id = b.parameter_id') 
       ->where('b.noRM='.$_POST['no_rm']) 
       ->queryAll(); 
+0

以来,此方法可用。它不起作用。它仍然是一样的。 – dede

+0

你的'$ command'变量有什么? –

+0

$ command = Yii :: app() - > db-> createCommand(); – dede

0

尝试使用别名来解决列名(你在数组键使用相同的名称)

$result = $command->select('a.parameter_name as parameter_name, 
       a.unit as unit, 
       b.result as result, 
       b.normal_value as normal_value') 
      ->from('parameter a') 
      ->join('test b', 'a.parameter_id = b.parameter_id') 
      ->where('b.noRM='.$_POST['no_rm']) 
      ->queryAll(); 
相关问题