亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

PHP升級到4.3版本之后改變了調用存儲過程的一個

系統 2870 0

編寫者

版本

本文假定您熟悉 Php 、Sql

鄭昀 @ 掌上靈通

第一稿


小麻煩:

我們按照慣例使用了一個MS Sql Server的存儲過程procA,它給出了一個輸出參數nReturn,
而且返回了一個結果集。
在如何讓PHP調用這個procA的時候,我們遭遇了一點小麻煩。

魚肉和熊掌不可兼得:
我們本來希望這樣的代碼能夠既得到輸出參數,又得到返回的結果集:
// 初始化要傳進存儲過程的參數們:
$nYear = 2004;
$nPageSize = 20;
$nPageNo = 1;
// Initializes a stored procedure:
$stmt = mssql_init("proc_stat_page", $db_mssql->Link_ID);
// 綁定輸入參數:
mssql_bind($stmt, "@nReturn", $nReturn, SQLINT4, TRUE);
mssql_bind($stmt, "@nYear", $nYear, SQLINT4);
mssql_bind($stmt, "@nPageSize", $nPageSize, SQLINT4);
mssql_bind($stmt, "@nPageNo", $nPageNo, SQLINT4);
// 執行存儲過程,得到QueryID:
$db_mssql->Query_ID = mssql_execute($stmt,false);
雖然得到了結果集,但是,這樣$nReturn參數是拿不到輸出參數的。

如果把最后一句話改為:
$db_mssql->Query_ID = mssql_execute($stmt,true);
輸出參數倒是拿到了,結果集又沒有了。

好像是一個魚肉和熊掌不可兼得的樣子。
難道PHP連這個都做不到?PHP手冊中也沒有講這個問題。

來自于PHP維護者的解釋:
原本我們這種調用辦法是PHP 4.3版本之前肯定是支持的。
“但是,自從PHP 4.3版本之后,”他們說,“為了能夠兼容存儲過程返回多個結果集,PHP改變這個特性。”
“如果你不需要結果集,你應該設置mssql_execute的第二個可選參數為TRUE,這樣mssql_execute方法之后你就可以得到輸出參數了。”
“如果你需要返回的結果集們,你應該為每一個結果集調用一次mssql_next_result。在最后一個結果集返回之后,你再調用mssql_next_result就會得到返回值FALSE,這時候,你就可以訪問輸出參數了。”

解決:
在最后我們補上一句話:
// After the last result has been returned the return value will have the value returned by the stored procedure.
mssql_next_result($db_mssql->Query_ID);
立刻,魔法生效了:
PHP填充了正確的輸出參數到$nRetVal里。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=140231


PHP升級到4.3版本之后改變了調用存儲過程的一個特性


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩欧美在线观看成人 | 日韩在线一区二区三区免费视频 | 99视频免费 | 欧美视频一区二区三区在线观看 | 波多野结衣一区二区三区在线观看 | 亚洲综合色站 | 色视频在线免费看 | 99热免费 | 婷婷激情五月综合 | 成人影院一区二区三区 | 亚洲免费毛片 | 视频日韩| 播五月| 久久午夜综合久久 | 久草这里只有精品 | 亚洲视频久久 | 少妇美女极品美軳人人体 | 精品国产96亚洲一区二区三区 | 一级女性全黄生活片免费 | 色综合久久综合欧美综合图片 | 久久国产欧美日韩精品免费 | 九九精品在线播放 | 99国产精品久久久久久久日本 | 麻豆一区二区三区四区 | 精品国产一区二区三区四 | 亚洲精品成人 | 国产成社区在线视频观看 | 香蕉在线观看999 | 国产69精品久久久久999小说 | 国产100页| 老子影院伦不卡欧美 | 中文字幕在线看视频一区二区三区 | 国产精品热久久毛片 | 免费黄片毛片 | 在线视频 中文字幕 | 欧美综合网站 | 无遮挡一级毛片视频 | 91福利国产在线观看 | 国产欧美成人一区二区三区 | 婷婷五 在线播放 | 亚洲 国产 图片 |