Gespeicherte Prozedur (Query Builder 18)


Die Datenzugriffsschicht unterstützt gespeicherte Prozeduraufrufe mit der folgenden Methode:

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

}

Das System ermittelt automatisch, ob es sich bei der aktuellen Abfrage um einen gespeicherten Prozeduraufruf handelt , aber die Prozedurmethode kann verwendet werden. Geben Sie die aktuelle Abfrage explizit als gespeicherte Prozedurabfrage an, um die Abfrageeffizienz zu verbessern.

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

Die gespeicherte Prozedur gibt einen Datensatz zurück. Wenn Ihre gespeicherte Prozedur keine Daten zurückgeben muss, können Sie auch die Ausführungsmethode verwenden:

Db::execute('call procedure_name');

Die gespeicherte Prozedur kann Eingabe und Ausgabe unterstützen Parameter und führen Sie Parameterbindungsoperationen durch.

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

Die Bindung von Ausgabeparametern muss zusätzlich PDO::PARAM_INPUT_OUTPUT verwenden und kann einen Parameter mit dem Eingabeparameter teilen.

Unabhängig davon, welche Vorgänge innerhalb der gespeicherten Prozedur ausgeführt werden, wird jeder Aufruf einer gespeicherten Prozedur nur als Abfrage betrachtet.