使用php mssql中的自帶函數
1.初始化存儲過程
$stmt = mssql_init ( 'procedure name' );
2.綁定變量
輸入參數:
mssql_bind ( $stmt, '@operate_flag', $status, SQLVARCHAR ); 注意第三個參數必須為變量,否則報錯
輸出參數:
mssql_bind ( $stmt, '@return_mess', $output, SQLVARCHAR, true ); 第五個參數為是否為輸出標記
執行存儲過程
$retult = mssql_execute ( $stmt ); 第二個參數為是否返回結果集,更改設置與返回值無關
斷開連接
mssql_free_statement ( $stmt );
輸出值在變量$output中
當存儲過程有多個返回結果集,又有返回值時,處理方法有所不同:
來自於PHP維護者的解釋:
原本我們這種調用辦法是PHP 4.3版本之前肯定是支持的。
“但是,自從PHP 4.3版本之後,”他們說,“為了能夠兼容存儲過程返回多個結果集,PHP改變這個特性。”
“如果你不需要結果集,你應該設置mssql_execute的第二個可選參數為TRUE,這樣mssql_execute方法之後你就可以得到輸出參數了。”
“如果你需要返回的結果集們,你應該為每一個結果集調用一次mssql_next_result。在最後一個結果集返回之後,你再調用mssql_next_result就會得到返回值FALSE,這時候,你就可以訪問輸出參數了。
修改代碼如下
mssql_next_result($result);