ストアド プロシージャ (クエリ ビルダー 18)
データ アクセス層はストアド プロシージャ呼び出しをサポートしています。データベース ストアド プロシージャを呼び出すには、次のメソッドを使用します:
$resultSet = Db::query('call procedure_name'); foreach ($resultSet as $result) { }
システムは、現在のクエリがストアド プロシージャ呼び出しであるかどうかを自動的に判断します。 , ただし、プロシージャ メソッドを使用することもできます。現在のクエリをストアド プロシージャ クエリとして明示的に指定すると、クエリの効率が向上します。
$resultSet = Db::procedure(true) ->query('call procedure_name');
ストアド プロシージャはデータ セットを返します。ストアド プロシージャがデータを返す必要がない場合は、execute メソッドを使用することもできます:
Db::execute('call procedure_name');
ストアド プロシージャは入力と出力をサポートできます。パラメータを指定し、パラメータ バインディング操作を実行します。
$resultSet = Db::query('call procedure_name(:in_param1,:in_param2,:out_param)', [ 'in_param1' => $param1, 'in_param2' => [$param2, PDO::PARAM_INT], 'out_param' => [$outParam, PDO::PARAM_STR | PDO::PARAM_INPUT_OUTPUT, 4000], ]);
出力パラメータのバインドでは、さらに PDO::PARAM_INPUT_OUTPUT を使用する必要があり、パラメータを入力パラメータと共有できます。
ストアド プロシージャ内でどのような操作が実行されても、各ストアド プロシージャ呼び出しはクエリとしてのみ見なされます。