我是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
输出
现在我想查看上面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数组。
我怎样才能做到这一点?任何帮助都将受到高度赞赏。
答案 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();
并在不需要时移除无用的背景