ストアド プロシージャ (クエリ ビルダー 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 を使用する必要があり、パラメータを入力パラメータと共有できます。

ストアド プロシージャ内でどのような操作が実行されても、各ストアド プロシージャ呼び出しはクエリとしてのみ見なされます。