我一直在寻找如何获取我正在处理的存储过程结果的方法。
因此,当调用此SP时,它将以自动增量编号返回一系列数字。 ex. 0000002743
我不是创建SP的人,而且我是SQL Server的初学者但是当我尝试'修改'至少看看它是如何构成的时候,我有这个:
ALTER PROCEDURE [dbo].[New_BatchCode] AS
DECLARE @x NUMERIC
UPDATE SysVars SET @x = BatchCode = BatchCode + 1
SELECT BatchCode = REPLACE(STR(@x,10),' ','0')
在SQL Server中,我只需运行EXEC [dbo].[New_BatchCode]
,结果就会显示出来。但在PHP中,我无法使其发挥作用。我尝试了以下方法:
1
$conn = $this->delphi_connect();
$batch_code_query = "EXEC [dbo].[New_BatchCode];";
$stmt3 = sqlsrv_query($conn,$batch_code_query);
if( $stmt3 === false )
{
echo "Error in executing statement 3.\n";
die( print_r( sqlsrv_errors(), true));
}
if ($stmt3) {
while ($row = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC)) {
$ret[] = $row;
}
}
sqlsrv_free_stmt( $stmt3);
sqlsrv_close( $conn);
print_r($ret);
die();
2
$conn = $this->delphi_connect();
$batch_code_query = "{call [dbo].[New_BatchCode]}";
$stmt3 = sqlsrv_query($conn,$batch_code_query);
if( $stmt3 === false )
{
echo "Error in executing statement 3.\n";
die( print_r( sqlsrv_errors(), true));
}
if ($stmt3) {
while ($row = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC)) {
$ret[] = $row;
}
}
sqlsrv_free_stmt( $stmt3);
sqlsrv_close( $conn);
print_r($ret);
die();
我的目标是以某种方式存储已执行SP的结果并将其插入另一个查询。与$batch_code = [result]
一样。
我真的不知道该怎么做了。我将非常感谢你的帮助。谢谢!