任何人都可以帮我在php上执行这3个查询吗?
declare @result varchar(24);
exec usp_UserLogin @aUser = '$_POST[user]', @aPassword = '$_POST[pass]', @aToken = @result out;
select @result as token;
我需要他们一个接一个地跑,因为你可以看到,他们需要彼此正常工作。
TY 努诺桑托斯
答案 0 :(得分:0)
您需要执行包含这三行的单个查询,否则会出现类似未定义参数的错误。想想要在单独的SSMS查询窗口上执行每个查询。
您的查询将逐步执行。
$tsql= "declare @result varchar(24);
exec usp_UserLogin @aUser = ?, @aPassword = ?, @aToken = @result out;
select @result as token;";
$params = array($_POST[user], $_POST[pass]);
$stmt = sqlsrv_query( $conn, $tsql, $params);
如果您想检查每个步骤的结果(此查询似乎没有必要),您应该使用BEGIN TRAN
,COMMIT TRAN
参考:sqlsrv_query
答案 1 :(得分:0)
我解决了我的问题: 我把查询放在sqlsrv上用";"或","或" / n",但它比我想象的要简单!我只是把它们一个接一个地放在一起,用空格隔开,就像这样:
$rslt_query=sqlsrv_query($conn,"declare @result varchar(24) exec
usp_UserLogin @aUser = '$_POST[user]', @aPassword = '$_POST[pass]',
@aToken= @result out select @result as token ");
然后我只需获取并获取$ _SESSION变量的标记:
while($row = sqlsrv_fetch_array($rslt_query,SQLSRV_FETCH_ASSOC))
{$_SESSION['token']=$row['token'];}