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.