かなり簡単だと思うことについて簡単な質問があります。少し調べてみたところ、有望と思われるリンクがいくつか見つかりました。特にこれは、何らかの理由で機能しません。
とにかく、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番を取得するにはどうすればよいですか?