Yii2-查询结果数组没有返回值

时间:2017-11-19 10:32:44

标签: php mysql arrays yii2 resultset

我是Yii2 php的新手。我有一个查询,它给了我一些结果

$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

现在我想查看上面meter_status中列$result_set的值。

所以搜索后我发现我必须在数组中返回查询结果。所以在看到这个answer后,我做了类似下面的变化。以下是我所做的

 $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();

现在,当我运行我的代码时,我得到了array(0) { }。我不知道为什么它不给我null数组。

我怎样才能做到这一点?任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

确保正确分配$ 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();

并在不需要时移除无用的背景