-1

かなり簡単だと思うことについて簡単な質問があります。少し調べてみたところ、有望と思われるリンクがいくつか見つかりました。特にこれは、何らかの理由で機能しません。

とにかく、MySQLでストアドプロシージャを作成し、MySQL Workbenchでテストしたところ、動作します。num1とnum2を追加するだけで、結果が返されます。今、私はそれをPHPで動作させようとしていますが、結果は整数ではなく、その整数を含む1つのstdClassオブジェクトの配列になります。これは、大量のデータを返すプロシージャの観点からは理にかなっていますが、整数だけに到達するのに問題があります。

私はこれを実行します:

   CALL database.routine(2,7)

そして、結果を$varに保存します。print_r($ var)を実行すると、次のようになります。

    Array
    (
    [0] => stdClass Object
    (
    [num1+num2] => 9
    )
    )

したがって、配列部分を通過するために、print_r($ var [0])を実行して、配列の最初の要素を具体的に要求しました。これにより、次のようになります。

    stdClass Object
    (
    [num1+num2] => 9
    )

そして今、私はさらに1レベル進む必要があります...フィールドに名前が付けられているように見えるので、上記のリンク先のページが言ったことを試し、$ var [0]-> [num1 + num2]に到達しようとしましたが、動作しません。一重引用符と二重引用符のいくつかの組み合わせも試しましたが、うまくいきませんでした。このオブジェクトから9番を取得するにはどうすればよいですか?

4

5 に答える 5

5

試す...

$var[0]->{'num1+num2'}
于 2012-06-11T13:53:54.863 に答える
3

これを試して

$var[0]->{"num1+num2"}

また

$prop = 'num1+num2';
$var[0]->$prop;
于 2012-06-11T13:51:59.920 に答える
2

これを試しましたか?

$var[0]->{'num1+num2'}
于 2012-06-11T13:52:05.863 に答える
2

次を試してください$var[0]->{'num1+num2'}

于 2012-06-11T13:52:10.923 に答える
0

これはクレイジーですが、うまくいくかもしれません!

$var[0]->{'num1+num2'}

于 2012-06-11T14:10:47.153 に答える