【问题标题】:Yii2- Query result array returning no valuesYii2- 查询结果数组不返回值
【发布时间】:2018-05-02 17:14:13
【问题描述】:

我是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 

输出是

现在我要检查上面$result_setmeter_status列的值。

所以搜索后我发现我必须以数组的形式返回查询结果。所以在看到这个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) { }。我不知道为什么它没有给我空数组。

我怎样才能做到这一点?任何帮助将不胜感激。

【问题讨论】:

  • 尝试绑定 ogp_id 变量: $post = Yii::$app->db->createCommand('SELECT .. your query... ogph.issuer =:ogp_id') ->bindValue( ':ogp_id', $ogp_id)->queryAll();

标签: php mysql arrays yii2 resultset


【解决方案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();

并在不需要时删除无用的反引号

【讨论】:

  • 实际上我传递了错误的变量。现在它已经完成并开始工作了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-31
  • 2019-09-18
  • 2012-05-08
  • 2016-09-30
相关资源
最近更新 更多