Procédure stockée (Query Builder 18)


La couche d'accès aux données prend en charge les appels de procédure stockée. Pour appeler des procédures stockées de base de données, utilisez la méthode suivante :

$resultSet = Db::query('call procedure_name');
foreach ($resultSet as $result) {

}

Le système déterminera automatiquement si la requête actuelle est un appel de procédure stockée, mais vous pouvez utiliser la méthode de procédure pour le faire explicitement. spécifiez la requête actuelle en tant que requête de procédure stockée, ce qui améliore l'efficacité de la requête.

$resultSet = Db::procedure(true)
    ->query('call procedure_name');

La procédure stockée renvoie un ensemble de données. Si votre procédure stockée n'a pas besoin de renvoyer de données, vous pouvez également utiliser la méthode d'exécution :

Db::execute('call procedure_name');

La procédure stockée peut prendre en charge les paramètres d'entrée et de sortie, ainsi que les opérations de liaison de paramètres. .

$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],
]);

La liaison des paramètres de sortie doit en outre utiliser PDO::PARAM_INPUT_OUTPUT et peut partager un paramètre avec le paramètre d'entrée.

Quelles que soient les opérations effectuées dans la procédure stockée, chaque appel de procédure stockée n'est considéré que comme une requête.