Prosedur Tersimpan (Pembina Pertanyaan 18)
Lapisan akses data menyokong panggilan prosedur tersimpan Untuk memanggil prosedur tersimpan pangkalan data, gunakan kaedah berikut:
$resultSet = Db::query('call procedure_name'); foreach ($resultSet as $result) { }
Sistem akan secara automatik menentukan sama ada pertanyaan semasa ialah panggilan prosedur tersimpan, tetapi anda boleh menggunakan kaedah prosedur untuk secara eksplisit. tentukan pertanyaan semasa sebagai pertanyaan prosedur tersimpan, yang meningkatkan kecekapan Pertanyaan.
$resultSet = Db::procedure(true) ->query('call procedure_name');
Prosedur tersimpan mengembalikan set data Jika prosedur tersimpan anda tidak perlu memulangkan sebarang data, anda juga boleh menggunakan kaedah laksana:
Db::execute('call procedure_name');
Prosedur tersimpan boleh menyokong parameter input dan output, serta operasi mengikat parameter. .
$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], ]);
Pengikatan parameter output mesti menggunakan PDO::PARAM_INPUT_OUTPUT, dan boleh berkongsi parameter dengan parameter input.
Tidak kira apa operasi yang dilakukan di dalam prosedur tersimpan, setiap panggilan prosedur tersimpan hanya dianggap sebagai pertanyaan.