国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php執行多個存儲過程的方法【基于thinkPHP】

2024-05-04 23:51:57
字體:
來源:轉載
供稿:網友

本文實例講述了php執行多個存儲過程的方法。分享給大家供大家參考,具體如下:

從以前的使用原生代碼來看,只需要將結果集關閉即可,即

$this -> queryID -> close();

使用mysqli方式,修改DbMysqli.class.php,將query函數改為:

public function query($str) {    $this -> initConnect(false);    if (!$this -> _linkID) {      return false;    }    $this -> queryStr = $str;    //釋放前次的查詢結果    if ($this -> queryID)      $this -> free();    N('db_query', 1);    // 記錄開始執行時間    G('queryStartTime');    $this -> queryID = $this -> _linkID -> query($str);    // 對存儲過程改進    $ret = array();    $this -> debug();    if (false === $this -> queryID) {      $this -> error();      return false;    } else {      $this -> numRows = $this -> queryID -> num_rows;      $this -> numCols = $this -> queryID -> field_count;      $ret = $this -> getAll();    }    //主要將這段移動了一下,關閉結果集    if ($this -> _linkID -> more_results()) {      while (($res = $this -> _linkID -> next_result()) != NULL) {        $this -> queryID -> close();      }    }    return $ret ;}

下面就可以調用多個存儲過程,或許執行其他SQL操作,可以直接使用M函數

在使用thinkphp的時候發現執行多個存儲過程只能執行第一個,看了一下源碼Driver/Db/DbMysql.class,已經對存儲過程進行了一定處理,但是不知道為什么運行不了。

用原生代碼解決了問題(下面是部分代碼):

$db = new mysqli(C("DB_HOST"), C("DB_USER"), C("DB_PWD"), C("DB_NAME"));if (mysqli_connect_errno())throw_exception(mysqli_connect_error());$t2 = microtime(true);echo "數據庫連接用時:" . (($t2 - $t1)) . "s <br />";$arr = array();// 1st Query$procedure = "call p1()";$result = $db->query($procedure);if ($result) {// Cycle through resultswhile ($row = $result->fetch_object()) {//添加到對象數組$arr[] = $row;}// 這里是最重要的,需要將游標移動下一個結果集$result->close();$db->next_result();}$procedure = "call p2()";$result = $db->query($procedure);if ($result) {// Cycle through resultswhile ($row = $result->fetch_object()) {//添加到對象數組$arr[] = $row;}// 這里是最重要的,需要將游標移動下一個結果集$result->close();$db->next_result();}

希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 孟村| 高密市| 公主岭市| 信阳市| 兴安县| 文水县| 敖汉旗| 松阳县| 大埔区| 五常市| 景宁| 武乡县| 禹城市| 乌鲁木齐市| 大荔县| 安义县| 昆山市| 商都县| 寿宁县| 阿勒泰市| 玉林市| 绩溪县| 华池县| 安乡县| 故城县| 五台县| 长垣县| 年辖:市辖区| 杭锦后旗| 白城市| 克山县| 浦县| 山东省| 大新县| 启东市| 定安县| 天镇县| 吉安市| 双流县| 马龙县| 米林县|