您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
sqlserver2008 調用一個有接收多個參數 并且希望有return_value返回值的調用方式
发布时间:2022-01-05 22:54:46编辑:雪饮阅读()
首先在sqlserver2008自帶的客戶端中執行該調用過程時的原始語句如:
USE [OILPOS]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[WXSys_GetRecentUnpay]
@StationNo = N'111',
@NozzleNo = 222
SELECT 'Return Value' = @return_value
GO
那麽咱們的php來進行調用如:
//N暂时不晓得怎么设置
$input1 = "0001";
$input2 = "1";
//-1应该是对应int
$return_value = -1;
$proc = '{? = CALL WXSys_GetRecentUnpay (?,?) }';
$stmt = $this->db->prepare( $proc );
//int类型是4字节
//PDO::PARAM_INPUT_OUTPUT
/*
* 个人理解:
* SELECT 'Return Value' = @return_value,相当于传入,而回显的'Return Value'是输出,所以输入与输出都有
* */
$stmt->bindParam(1,$return_value ,\PDO::PARAM_INT|\PDO::PARAM_INPUT_OUTPUT,4);
$stmt->bindParam(2,$input1,\PDO::PARAM_STR);
$stmt->bindParam(3,$input2,\PDO::PARAM_INT);
$stmt->execute();
$list=[];
while($row = $stmt->fetch( \PDO::FETCH_ASSOC)){
$list[]=$row;
}
var_dump($list);
對於上面那個return_value定義的是既是輸入又是輸出,也可以參考下圖,原始sqlserver2008自帶客戶端執行的結果來理解:
當然這也只是個人理解了,本人主要是php開發,php與mysql才是黃金搭檔,像是sqlserver這種對於本人來説算是不常見的數據庫了。
关键字词:sqlserver2008,sqlserver,sqlserv,存儲過程,接收參數,返回,輸入