PHP調(diào)用MsSQL Server 2012存儲(chǔ)過(guò)程獲取多結(jié)果集(包含output參數(shù))的詳解
$dbh = new PDO('sqlsrv:server=連接地址;Database=數(shù)據(jù)庫(kù)名', 用戶(hù)名, 密碼);
try {
$procName = "P_Test_GetMixData";
$stmt = $dbh->prepare("EXEC $procName ?, ?, ?");
$nReturnValue = 0;
$strReturnValue = "";
$strSearchValue = "abandonship";
$stmt->bindParam(1, $nReturnValue, PDO::PARAM_INT | PDO::PARAM_INPUT_OUTPUT, PDO::SQLSRV_PARAM_OUT_DEFAULT_SIZE);
$stmt->bindParam(2, $strReturnValue, PDO::PARAM_STR | PDO::PARAM_INPUT_OUTPUT, 10);
$stmt->bindParam(3, $strSearchValue , PDO::PARAM_STR);
$stmt->execute();
//獲取第一個(gè)結(jié)果集.
$rowset_1 = $stmt->fetch(PDO::FETCH_ASSOC);
print_r($rowset_1);
echo '<br><br>';
//獲取第二個(gè)結(jié)果集.
$stmt->nextRowset();
$rowset_2 = $stmt->fetch();
print_r($rowset_2);
echo '<br><br>';
$stmt->nextRowset();
// 獲取兩個(gè)輸出類(lèi)型的參數(shù)
echo $nReturnValue.'<br><br>';
echo $strReturnValue;
} catch (Exception $e) {
echo $e->getMessage();
}
【SQL PROCEDURE】:
/**
* 用于測(cè)試PDO調(diào)用MsSQLServer2012存儲(chǔ)過(guò)程獲取復(fù)合結(jié)果集Demo
* Code CreateBy abandonship 2012.10.11
**/
CREATE PROCEDURE [dbo].[P_Test_GetMixData](
@Message_1 tinyint output,
@Messgae_2 varchar(10) output,
@SearchValue varchar(50)
) As
set nocount on
set @Message_1 = 123
set @Messgae_2 = 'Hi,there!This is abandonship!'
select * from _T1 where col1 like '%'+@SearchValue+'%'
select * from _T2 where col1 like '%'+@SearchValue+'%'
set nocount off
【一些要注意的問(wèn)題】:當(dāng)bindParam中存在需要輸出類(lèi)型的參數(shù)時(shí),必須包含長(zhǎng)度($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.
相關(guān)文章
用php實(shí)現(xiàn)像JSP,ASP里Application那樣的全局變量
用php實(shí)現(xiàn)像JSP,ASP里Application那樣的全局變量...2007-01-01ThinkPHP開(kāi)發(fā)框架函數(shù)詳解:C方法
這篇文章主要給大家講解ThinkPHP開(kāi)發(fā)框架函數(shù)詳解:C方法,有需要的朋友可以參考下2015-08-08深入理解PHP原理之Session Gc的一個(gè)小概率Notice
PHP Notice: session_start(): ps_files_cleanup_dir2011-04-04PHP實(shí)現(xiàn)基于圖的深度優(yōu)先遍歷輸出1,2,3...n的全排列功能
這篇文章主要介紹了PHP實(shí)現(xiàn)基于圖的深度優(yōu)先遍歷輸出1,2,3...n的全排列功能,涉及php數(shù)據(jù)結(jié)構(gòu)中圖的遍歷及全排列相關(guān)數(shù)學(xué)運(yùn)算技巧,需要的朋友可以參考下2017-11-11thinkphp5使用bootstrapvalidator進(jìn)行異步驗(yàn)證郵箱的示例
這篇文章主要介紹了thinkphp5使用bootstrapvalidator進(jìn)行異步驗(yàn)證郵箱的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10微信公眾平臺(tái)開(kāi)發(fā)教程⑥ 微信開(kāi)發(fā)集成類(lèi)的使用圖文詳解
這篇文章主要介紹了微信公眾平臺(tái)開(kāi)發(fā)之微信開(kāi)發(fā)集成類(lèi)的使用,結(jié)合圖文形式詳細(xì)分析了微信開(kāi)發(fā)集成類(lèi)的原理、功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-04-04php實(shí)現(xiàn)數(shù)字轉(zhuǎn)億萬(wàn)單位的示例代碼
這篇文章主要為大家詳細(xì)介紹了php如何實(shí)現(xiàn)數(shù)字轉(zhuǎn)億萬(wàn)單位,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11