PHP如何得到mssql的儲存過程的輸出引數?

2021-09-08 21:52:53 字數 908 閱讀 2455

使用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); 

php呼叫mssql儲存過程

一.建立資料庫並建立表 表users 字段 id和name 二.建立儲存過程 create procedure proctest id int,name varchar 30 output asselect name name from users where id id select from u...

PHP呼叫MS SQL儲存過程

hostname tszzp dbuser sa dbpasswd id mssql connect hostname,dbuser,dbpasswd or die 無法連線資料庫伺服器!printf d n id db mssql select db stock id or die 無法連線sto...

PHP中如何得到陣列的長度

獲取一維陣列 count 和sizeof 都可以直接統計一維陣列長度。示例如下 arr array 0 1 2 3 4 5 6 7 8 9 echo count arr 輸出10 arr array 蘋果 香蕉 桔子 西瓜 梨 葡萄 echo sizeof arr 輸出6 獲取二維陣列長度 coun...