加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – Laravel和存储的MySQL程序的结果

发布时间:2020-12-14 19:40:30 所属栏目:大数据 来源:网络整理
导读:我正在处理一些非常古老的代码,我正试图在Laravel上运行.数据库很复杂,充满了不必要的长存储过程,我没有重写的预算. 在大多数情况下,这些都很好,因为我可以访问像 ????$myID = $result [0] – id 我希望这不仅仅是我PHP知识的一个空白…… $result = DB::sel
我正在处理一些非常古老的代码,我正试图在Laravel上运行.数据库很复杂,充满了不必要的长存储过程,我没有重写的预算.

在大多数情况下,这些都很好,因为我可以访问像
????$myID = $result [0] – > id

我希望这不仅仅是我PHP知识的一个空白……

$result = DB::select(DB::raw("Call MyOldStoredProcedure()"));
print_r($result);

这给了我:

Array ( [0] => stdClass Object ( [MIN(user_responses.sectionid)] => 2 ) )

我毫不奇怪无法访问

$number = $result[0]["MIN(user_responses.sectionid)"]; //or...
$number = $result[0]->...

我该怎么做才能从这个奇怪的关联数组/对象中检索这个奇异的结果?我即将放弃并解析数组字符串,但我知道有更好的方法.

解决方法

最简单的选择是使用花括号以便能够引用特殊字符:

$number = $result[0]->{'MIN(user_responses.sectionid)'};

另一个选项是将变量设置为属性的名称,然后使用变量访问该属性:

$property = 'MIN(user_responses.sectionid)';
$number = $result[0]->$property;

此外,您还可以将对象转换为数组,并像最初尝试一样访问该属性.

$array = (array)$result[0];
$number = $array['MIN(user_responses.sectionid)'];

// or,if you're on PHP 7+
$number = ((array)$result[0])['MIN(user_responses.sectionid)'];

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读