熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

PHP調用MsSQL Server 2012存儲過程獲取多結果集(包含output參數)的詳解

2013-11-15 12:27:51  來源: PHP編程 
本篇文章是對PHP調用MsSQL Server 存儲過程獲取多結果集(包含output參數)的方法進行了詳細的分析介紹需要的朋友參考下  

  【PHP Source Code】

復制代碼 代碼如下:
$dbh = new PDO(sqlsrv:server=連接地址;Database=數據庫名 用戶名 密碼);
try {
 $procName = "P_Test_GetMixData";
 $stmt = $dbh>prepare("EXEC $procName ? ? ?");
 $nReturnValue = ;
 $strReturnValue = "";
 $strSearchValue = "abandonship";
 $stmt>bindParam( $nReturnValue PDO::PARAM_INT | PDO::PARAM_INPUT_OUTPUT PDO::SQLSRV_PARAM_OUT_DEFAULT_SIZE);
 $stmt>bindParam( $strReturnValue PDO::PARAM_STR | PDO::PARAM_INPUT_OUTPUT );
 $stmt>bindParam( $strSearchValue PDO::PARAM_STR);
 $stmt>execute();

 //獲取第一個結果集
 $rowset_ = $stmt>fetch(PDO::FETCH_ASSOC);
 print_r($rowset_);
 echo <br><br>;

 //獲取第二個結果集
 $stmt>nextRowset();
 $rowset_ = $stmt>fetch();
 print_r($rowset_);
 echo <br><br>;
 $stmt>nextRowset();
 // 獲取兩個輸出類型的參數
 echo $nReturnValue<br><br>;
 echo $strReturnValue;
} catch (Exception $e) {
 echo $e>getMessage();
}

  
【SQL PROCEDURE】

復制代碼 代碼如下:
/**
* 用於測試PDO調用MsSQLServer存儲過程獲取復合結果集Demo
* Code CreateBy abandonship
**/
CREATE PROCEDURE [dbo][P_Test_GetMixData](
 @Message_ tinyint output
 @Messgae_ varchar() output
 @SearchValue varchar()
) As
set nocount on

 set @Message_ =
 set @Messgae_ = Hithere!This is abandonship!
 select * from _T where col like %+@SearchValue+%
 select * from _T where col like %+@SearchValue+%
set nocount off

  
【一些要注意的問題】當bindParam中存在需要輸出類型的參數時必須包含長度($length)
【備注】$length: An optional (integer) length of the data type You can specify PDO::SQLSRV_PARAM_OUT_DEFAULT_SIZE to indicate the default size when using PDO::PARAM_INT or PDO::PARAM_BOOL in $data_type


From:http://tw.wingwit.com/Article/program/PHP/201311/20994.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.