2015-12-15 50 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(); 
相關問題