Laravel 開発では、ストアド プロシージャはデータベースの重要な部分であり、データベースの管理を改善し、クエリの効率を向上させ、コード ロジックとデータベース接続量の問題を軽減するのに役立ちます。この記事では、Laravel アプリケーションでストアド プロシージャを呼び出す方法について説明します。
1. ストアド プロシージャとは何ですか?
ストアド プロシージャは、データベースに保存され、再利用可能なプロシージャまたは関数として呼び出される、プリコンパイルされた SQL ステートメントのセットです。 SQL ステートメントとは異なり、ストアド プロシージャには制御ロジックと SQL ステートメントが含まれており、パラメーターを受け入れたり、複数の値を返したり、一時テーブルなどを操作したりすることもできます。ストアド プロシージャを使用すると、アプリケーションのパフォーマンスとセキュリティが向上し、アプリケーションの複雑さが簡素化され、データベースとアプリケーション間の往復通信が削減されます。
2. ストアド プロシージャを作成する
MySQL では、CREATE PROCEDURE ステートメントを使用してストアド プロシージャを作成する必要があります。構文は次のとおりです。 、procedure_nameはストアドプロシージャの名前であり、parameter_nameはパラメータ名を表し、data_typeはパラメータのデータ型を示し、lengthはデータ長を示します。パラメータには、入力パラメータを意味する IN (ストアド プロシージャの入力時にのみ使用可能)、出力パラメータを意味する OUT (ストアド プロシージャを通じてのみデータを取得できる)、および入力と出力の両方に使用できる INOUT があります。
例として、ユーザー情報を取得するストアド プロシージャ getUserInfo を作成すると、コードは次のようになります:
CREATE PROCEDURE procedure_name ([IN | OUT | INOUT] parameter_name data_type [(length)],...) [SQL语句]
このストアド プロシージャを通じて、指定された ID のユーザー情報を取得できます。
3. ストアド プロシージャを呼び出す
Laravel では、DB ファサードを使用して、ストアド プロシージャを実行するメソッド DB::select を提供できます (例:
CREATE PROCEDURE getUserInfo(IN userId INT) BEGIN SELECT * FROM users WHERE id = userId; END
$result = DB::select("CALL getUserInfo(1)");
$result = DB::select("CALL getUserInfo(?)", [1]);
DB::statement("CALL updateUser(1, 'John')");
以上がlaravelはストアドプロシージャを呼び出しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。