Получение выходных данных из хранимой процедуры в переполнении стека

Я вызываю хранимую процедуру в php прямо сейчас, и третий параметр процедуры — это параметр OUT, поэтому он должен получать вывод

Когда я запускаю это:

function createNameRecord($firstName,$lastName){
try{
$sql = "CALL schema.CREATE_RECORD(?,?,?)";
$values = [$firstName,$lastName,$returnID];
return DB::connection('odbc')->select($sql,$values);
dd($returnID);
}catch(Exception $e){
return false;
}
}

Процедура выполняется правильно и перезагружает страницу, и когда я проверяю базу данных, тогда запись была успешно создана. Однако мне нужна выходная переменная, которая является идентификатором созданной записи, и мне нужно, чтобы она возвращалась для функции, которая запускается впоследствии.

Так как это работает, успешно создает запись и перезагружает страницу, то как я могу вывести вывод $returnID чтобы я мог проверить, что он хранит мой возвращенный идентификатор? Вышеуказанный дамп и штамп не работает, возможно, из-за перезагрузки страницы.

Каков наилучший способ подтверждения идентификатора возврата?

0

Решение

Как только ваша функция видит returnфункция больше не будет выполнять какой-либо код после этой строки. В этом случае dd($returnID); никогда не будет казнен. Если вы просто отлаживаете, просто удалите return, и разреши dd() выход / умереть:

function createNameRecord($firstName,$lastName){
try{
$sql = "CALL schema.CREATE_RECORD(?,?,?)";
$values = [$firstName,$lastName,$returnID];
DB::connection('odbc')->select($sql,$values);
dd($returnID);
}catch(Exception $e){
return false;
}
}

В этом случае вы не заботитесь о возвращаемом значении (что бы ни вызывало createNameRecord), так как вы просто хотите, чтобы ваш скрипт закончился / умер.

Если он все еще перезагружает страницу, то ваш оператор catch, вероятно, выполняется, и вам также следует отладить это:

function createNameRecord($firstName,$lastName){
try{
$sql = "CALL schema.CREATE_RECORD(?,?,?)";
$values = [$firstName,$lastName,$returnID];
DB::connection('odbc')->select($sql,$values);
dd($returnID);
}catch(Exception $e){
dd($e);
}
}
1

Другие решения

Я новичок в сообществе и не совсем знаю, как вас вести, но что если вы попробовали mysqli_real_query () и получил результаты, как говорит доктор:

Выполняет один запрос к базе данных, результат которого может быть
извлекается или сохраняется с помощью mysqli_store_result () или
mysqli_use_result () функции.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector