【PHPソースコード】:
コードをコピー コードは次のとおりです:
$dbh = new PDO('sqlsrv:server=接続アドレス;Database=データベース名',ユーザー名,パスワード) ;
try {
$procName = "P_Test_GetMixData";
$stmt = $dbh->prepare("EXEC $procName ?, ?, ?");
$nReturnValue = 0;
$strReturnValue = "";
$ strSearchValue = "放棄";
$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();
//最初の結果セットを取得します。
$ rowset_1 = $stmt->fetch(PDO::FETCH_ASSOC);
print_r($rowset_1);
echo '
';
// 2 番目の結果セットを取得します。
$stmt - >nextRowset();
$rowset_2 = $stmt->fetch();
print_r($rowset_2);
echo '
';
$stmt->nextRowset();
// 2 つの出力タイプのパラメータを取得します
echo $nReturnValue.'
';
echo $strReturnValue;
} catch (Exception $e) {
echo $e->getMessage(); Q}
[SQL プロシージャ]:
コードをコピーします。 コードは次のとおりです:
/**
* 複合結果セットを取得するために MsSQLServer2012 ストアド プロシージャを呼び出す PDO をテストするために使用されました デモ
* コード CreateBy 放棄 2012.10.11
**/
Create Procedure [dbo] (
@message_1) tinyint 出力 ,
@Messgae_2 varchar(10) 出力,
@SearchValue varchar(50)
) As
set nocount on
set @Message_1 = 123
set @Messgae_2 = 'こんにちは、放棄です!'
select * from _T1 wherecol1 like '%'+@SearchValue+'%'
select * from _T2 wherecol1 like '%'+@SearchValue+'%'
set nocount off
[注意すべき問題]:bindParam が存在する場合出力タイプのパラメータが必要な場合は、長さ ($length) を含める必要があります。
【備考】:
$length: $data_type で PDO::PARAM_INT または PDO::PARAM_BOOL を使用する場合、デフォルトのサイズを示すために PDO::SQLSRV_PARAM_OUT_DEFAULT_SIZE を指定できます。
http://www.bkjia.com/PHPjc/328018.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/328018.html技術記事 [PHP ソース コード]: 次のようにコードをコピーします: $dbh = new PDO('sqlsrv:server=接続アドレス;Database=データベース名', ユーザー名, パスワード); try { $procName = "P_Test_GetMixData"; .