Я пытаюсь выполнить хранимую процедуру сервера SQL с php. Сохраненная процедура возвращает выходное значение. Я хочу, чтобы это значение в php отображалось на веб-странице.Вызовите хранимую процедуру SQL Server с параметром вывода из PHP
Все работает отлично, за исключением того, что выходное значение возвращает 0 в php .., но строка вставлена отлично. выходное значение отображается как 0. раздраженный, где я совершил ошибку. Ниже мой PHP код
require('db.php');
$billno = "REF0001";
$retsno = 0.0;
$sp_name = "{call testinsert(?, ?)}";
$params = array(
array($billno, SQLSRV_PARAM_IN),
array($retsno, SQLSRV_PARAM_OUT)
);
/* Execute the query. */
$stmt3 = sqlsrv_query($conn, $sp_name, $params);
if($stmt3 === false)
{
echo "Error in executing statement 3.\n";
die(print_r(sqlsrv_errors(), true));
}
echo "Inserted Retuern Sno for ".$billno." is ". $retsno. ".";
и моя хранимая процедура
create procedure testinsert(@bill_no VARCHAR(20),@RetSno INT OUTPUT)
as
begin
insert into testable values(@bill_no,GETDATE())
set @RetSno = @@IDENTITY
return
end
Эти переменные не модифицирована таким образом, когда вы повторить их, вы получите свои начальные значения (REF0001, 0,0). вам необходимо назначить обновленные значения этим переменным. Или я чего-то не хватает? –
PLease попробуйте, если вы получите правильный ответ при замене '@@ IDENTITY' на нормальное число. – Andy
Энди Я тоже это пробовал. я просто вернул неопределенное значение из хранимой процедуры. все равно он возвращает 0. – srinivasan