У меня есть два сохраненных процесса, которые я вызываю из моего приложения Laravel.
Мое приложение laravel передает параметр cID, который затем передается хранимой процедуре в качестве "условия where". Но, похоже, что-то сбивается, и, возможно, мои переменные не установлены должным образом.
Также я знаю, что laravel передает правильный cID моему хранимому процессу, потому что я включил логи для mysql, чтобы увидеть, передает ли он какие-либо параметры.
Также оператор выбора хранимой процедуры прекрасно работает как запрос, если я вручную установил ClientID = '';
Мой сохраненный процесс отправляет ВСЕ клиенты и карты на просмотр, полностью игнорируя предложение where.
Код Laravel:
Route::get('/clients/{cID}', function ($cID) {
$details = DB::select('CALL sp_Details(' . DB::raw($cID) . ')');
$cards = DB::select('CALL sp_Cards(' . DB::raw($cID) . ')');
return view('client.show', compact('details','cards'));
});
Любой мой сохраненный процесс
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_Details`(IN cID int )
BEGIN
SET @ClientID = cID;
SELECT
ClientID,
Client_Name
FROM accounts
where @ClientID = cID;
END
Сохраненный процесс # 2
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_Cards`(cID int)
BEGIN
SET @ClientID = cID;
SELECT
ClientID,
Code
FROM cards
where cID = @ClientID;
END