2017-11-19 12 views
1

저는 Yii2 php을 처음 사용합니다. 나는 쿼리이 내게 일부 결과는를 제공합니다.Yii2- 쿼리 결과 배열에 값이 없습니다.

$result_set = "SELECT m.`id`,ogpd.`meter_serial`, m.`meter_status` FROM `ogp_header`ogph 
INNER JOIN `ogp_detail` ogpd ON ogph.`id` = ogpd.`ogp_id` 
INNER JOIN `meters` m ON ogpd.`meter_id` = m.`id` 
WHERE ogph.`issuer` = $ogp_id"; // here $ogp_id is 88 

출력은 이제 원하는

enter image description here

인 상기 $result_set에 열 meter_status의 값을 확인한다.

그래서 검색 후 배열 결과를 쿼리 결과로 반환해야한다는 것을 알게되었습니다. 그래서 이걸보고 난 후 answer 나는 벨로우즈 같은 변화를했습니다. 아래는 내가 array(0) { } 무엇입니까 내 코드를 실행할 때 지금

$result =Yii::$app->db->createCommand("SELECT m.`id`,ogpd.`meter_serial`, m.`meter_status` FROM `ogp_header`ogph 
         INNER JOIN `ogp_detail` ogpd ON ogph.`id` = ogpd.`ogp_id` 
         INNER JOIN `meters` m ON ogpd.`meter_id` = m.`id` 
         WHERE ogph.`issuer` = $ogp_id")->queryAll(); 

      var_dump($result); 
      exit(); 

을 한 일 입니다. 왜 내가 널 배열을주지 않는지 모르겠다.

어떻게하면됩니까? 어떤 도움을 주시면 감사하겠습니다.

+0

시도 결합 ogp_id 변수 unuseful backtics을 제거 : $ 포스트 = YII : $ APP-을 > db-> createCommand ('SELECT .. 쿼리 ... ogph.issuer = : ogp_id') -> bindValue (': ogp_id', $ ogp_id) -> queryAll(); –

답변

1

$ ogp_id가 제대로 지정되어 있는지 확인하고 바인딩 적절한를 사용하여

$ogp_id = 88; 
    $result =Yii::$app->db->createCommand("SELECT m.id, ogpd.meter_serial, m.meter_status 
        FROM ogp_header ogph 
        INNER JOIN ogp_detail ogpd ON ogph.id = ogpd.ogp_id 
        INNER JOIN meters m ON ogpd.meter_id = m.id 
        WHERE ogph.issuer = :ogp_id ") 
        ->bindValue(':ogp_id', $ogp_id) 
        ->queryAll(); 

     var_dump($result); 
     exit(); 

을 시도하고 필요하지 않은 경우

+0

사실 저는 잘못된 변수를 전달하고있었습니다. 이제 완료 및 작동 –