PHP調(diào)用MySQL的存儲過程的實現(xiàn)代碼
更新時間:2008年08月12日 12:57:28 作者:
MySQL好像從5.0開始才引入存儲過程,反正以前做應(yīng)用的時候從沒碰過,不過現(xiàn)在因為主要作內(nèi)部系統(tǒng)
MySQL好像從5.0開始才引入存儲過程,反正以前做應(yīng)用的時候從沒碰過,不過現(xiàn)在因為主要作內(nèi)部系統(tǒng),所以很多應(yīng)用都用到了存儲過程,當(dāng)然前臺有時候也需要調(diào)用MySQL存儲過程,PHP的MySQL Lib好像支持的不是很好,不過我搜索了些資料,雖然不多,但是還是嘗試的使用了,現(xiàn)在介紹一下方法,以便用到的朋友不用再頭疼。
lMySQL擴展也是支持存儲過程的,不過只支持無返回結(jié)果的存儲過程,如果該存儲過程存在輸出,這個調(diào)用就會拋出一個錯誤,具體錯誤忘記了。調(diào)用方式很簡單:
$rs = mysql_query("call func('str')", $conn);
這個如果有返回結(jié)果,比如返回字符串,就會報錯,我現(xiàn)在找到的解決方法是使用MySQLi擴展:
$rs = mysqli_query("call func('str')", $conn);
這樣$rs就作為一個普通的MySQL Result來使用了,非常方便。
在調(diào)用存儲過程的時候,可能還會碰到一個問題,那就是可能會順序調(diào)用多個存儲過程,這樣同樣會報錯,解決方法就是在調(diào)用一個存儲過程并處理完成后,手動關(guān)閉MySQL鏈接,然后再次connect,再調(diào)用另一個存儲過程再處理,需要調(diào)用多少個存儲過程,就重新連接多少次。
因為我不是很了解MySQL擴展,以上純屬經(jīng)驗總結(jié),如果有哪位高手知道來龍去脈,歡迎指點。
lMySQL擴展也是支持存儲過程的,不過只支持無返回結(jié)果的存儲過程,如果該存儲過程存在輸出,這個調(diào)用就會拋出一個錯誤,具體錯誤忘記了。調(diào)用方式很簡單:
$rs = mysql_query("call func('str')", $conn);
這個如果有返回結(jié)果,比如返回字符串,就會報錯,我現(xiàn)在找到的解決方法是使用MySQLi擴展:
$rs = mysqli_query("call func('str')", $conn);
這樣$rs就作為一個普通的MySQL Result來使用了,非常方便。
在調(diào)用存儲過程的時候,可能還會碰到一個問題,那就是可能會順序調(diào)用多個存儲過程,這樣同樣會報錯,解決方法就是在調(diào)用一個存儲過程并處理完成后,手動關(guān)閉MySQL鏈接,然后再次connect,再調(diào)用另一個存儲過程再處理,需要調(diào)用多少個存儲過程,就重新連接多少次。
因為我不是很了解MySQL擴展,以上純屬經(jīng)驗總結(jié),如果有哪位高手知道來龍去脈,歡迎指點。
相關(guān)文章
PHP中Socket連接及讀寫數(shù)據(jù)超時問題分析
這篇文章主要介紹了PHP中Socket連接及讀寫數(shù)據(jù)超時問題,分析了Socket連接的相關(guān)設(shè)置與使用技巧,需要的朋友可以參考下2016-07-07PHP開發(fā)的文字水印,縮略圖,圖片水印實現(xiàn)類與用法示例
這篇文章主要介紹了PHP開發(fā)的文字水印,縮略圖,圖片水印實現(xiàn)類與用法,結(jié)合完整實例形式分析了php文字水印、縮略圖操作類定義與簡單使用方法,需要的朋友可以參考下2019-04-04php字符串截取函數(shù)mb_substr用法實例分析
這篇文章主要介紹了php字符串截取函數(shù)mb_substr用法,結(jié)合實例形式分析了php使用mb_substr針對中文字符串截取與編碼控制相關(guān)操作技巧,需要的朋友可以參考下2019-06-06