我找不到在 php 上执行多个相互影响的 SQL 查询的 sqlsrv 代码
I can't find a sqlsrv code to execute multiple SQL queries,on php, that afect each other
谁能帮我在 php 上执行这 3 个查询?
declare @result varchar(24);
exec usp_UserLogin @aUser = '$_POST[user]', @aPassword = '$_POST[pass]', @aToken = @result out;
select @result as token;
我需要它们一个接一个地运行,因为如你所见,它们需要彼此才能正常工作。
TY
努诺·桑托斯
您需要执行一个包含这三行的查询,否则您会收到未定义参数之类的错误。想想你想在单独的 SSMS 查询 window.
上执行每个查询
您的查询将逐步执行。
$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
我解决了我的问题:
我将查询放在用“;”分隔的sqlsrv上或“,”或“/n”,但它比我想象的要简单!我只是一个接一个地放,用 space 隔开,像这样:
$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'];}
谁能帮我在 php 上执行这 3 个查询?
declare @result varchar(24);
exec usp_UserLogin @aUser = '$_POST[user]', @aPassword = '$_POST[pass]', @aToken = @result out;
select @result as token;
我需要它们一个接一个地运行,因为如你所见,它们需要彼此才能正常工作。
TY 努诺·桑托斯
您需要执行一个包含这三行的查询,否则您会收到未定义参数之类的错误。想想你想在单独的 SSMS 查询 window.
上执行每个查询您的查询将逐步执行。
$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
我解决了我的问题: 我将查询放在用“;”分隔的sqlsrv上或“,”或“/n”,但它比我想象的要简单!我只是一个接一个地放,用 space 隔开,像这样:
$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'];}