PHP から MySQL のストアド プロシージャを呼び出したいと考えています。このプロセスは入力 および 出力パラメータを受け取ります。 は "INOUT" パラメータではありません。
簡単な例として、MySQL に次のストアド プロシージャがあるとします。 リーリー
ここで、PHP スクリプト/ページ側から、次の変数 (これらを「プロシージャ入力変数」と呼びます) があり、それらをinput パラメータとしてストアド プロシージャに提供したいとします。私はそれを呼び出します: リーリー
PHP スクリプト/ページ側に次の変数 (「プロシージャ出力変数」と呼びます) があり、それらをストアド プロシージャのoutput パラメータとして提供したいとします。 がストアド プロシージャ : によって設定されたとき、それを呼び出します。 リーリー
つまり、本質的に、PHP スクリプト/ページに関して私がやろうとしていることは、本質的に(次のコードが無効であることに気づきました) です。 リーリー ...呼び出されると、次の PHP コードが表示されます...< /p> リーリー
...次の出力が生成されるはずです:
リーリー可能であれば、MySQLi
プロシージャ関数/インターフェイスを使用してこれを実行できるようにしたいことに注意してください。それが不可能な場合は、それを機能させる方法を使用します。 私はしばらくプログラミングをしてきましたが、PHP 言語は私にとって比較的新しい取り組みです。 PHP から MySQL ストアド プロシージャを呼び出す方法については、大量のチュートリアルを見つけました。
inputパラメーターを使用してストアド プロシージャを呼び出すチュートリアル、output パラメーターを使用してストアド プロシージャを呼び出すチュートリアル、および inout パラメーターを使用するチュートリアルもあります。 「inputout」パラメータを使用して、特に ではなく <调用存储过程的教程/strong> を使用せずに、 同時に と 出力パラメータを入力するストアド プロシージャを呼び出すチュートリアルや例は見つかりませんでした。パラメータバインディング (mysqli_stmt_bind_param や mysqli_stmt_bind_result など) をエンコードして機能させる方法がわかりません。 ご協力をいただければ幸いです。よろしくお願いいたします。
P粉1229324662023-10-20 15:06:04
DB::select('call SP_fci_cb_emp_comp_salary_revision_add(?,?,?,@,@)', [ $my_compensation['detail']['employee_master_id'], Carbon::createFromFormat('d/m/Y', $salary_revised_result['detail']->effective_date)->format('Y-m-d'), $request->user_id ]);
P粉5761849332023-10-20 13:23:10
残念ながら、MySQLi にはストアド プロシージャ パラメータの出力に対するネイティブ サポートがありません。代わりに、MySQL ユーザー変数 に出力し、別の SELECT 値を使用して取得する必要があります。 ### 宣言。
プログラム インターフェイスを使用する:
または、オブジェクト指向インターフェイスを使用します:
リーリー