<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 多數據庫、主從庫配置 本章會講解一下關于sp框架的主從庫鏈接配置和多數據庫鏈接的方法。 ### 一、主從庫配置 新版sp框架,默認支持主從庫配置,直接在protected/config.php文件內進行配置即可讀寫分離。 配置方法: 'mysql' => array( 'MYSQL_HOST' => 'localhost', 'MYSQL_PORT' => '3306', 'MYSQL_USER' => 'root', 'MYSQL_DB' => 'test', 'MYSQL_PASS' => '', 'MYSQL_CHARSET' => 'utf8', 'MYSQL_SLAVE' => array( array( 'MYSQL_HOST' => 'localhost1', 'MYSQL_PORT' => '3306', 'MYSQL_USER' => 'root', 'MYSQL_DB' => 'test1', 'MYSQL_PASS' => '', 'MYSQL_CHARSET' => 'utf8', ), array( 'MYSQL_HOST' => 'localhost2', 'MYSQL_PORT' => '3306', 'MYSQL_USER' => 'root', 'MYSQL_DB' => 'test2', 'MYSQL_PASS' => '', 'MYSQL_CHARSET' => 'utf8', ), ), ), - 原有的mysql配置,代表的是主庫(寫庫)的配置,因為大部分情況下主庫是只寫一個鏈接,故主庫配置只有一個。 - 從庫(讀庫)的配置在'MYSQL_SLAVE'節點下,是一個數組,每項分別代表一個從庫配置。 - 請注意從庫配置是多級的數組,如果**只有一個也需要寫成多級數組**。 - 從庫之間的讀取是**隨機輪詢**。 > 從Model本身來看,findAll/find/findCount/query是讀方法,在主從配置下會使用從庫讀取。 > 而update/incr/decr/delete/create/execute是寫方法,會使用主庫進行操作。 主庫也可以是多個,這里就涉及到多數據庫鏈接的方法了,下面會介紹到。 ### 二、多庫鏈接方法 開發過程中,有時候我們需要換個數據庫鏈接進行讀寫,可能是遺留數據庫,也有可能是合作項目的庫,不管怎么樣,在sp框架中使用另一個庫也是非常簡單的事情。 // 準備新庫的鏈接配置數據 $dbconfig = array( 'MYSQL_HOST' => 'localhost', 'MYSQL_PORT' => '3306', 'MYSQL_USER' => 'root', 'MYSQL_DB' => 'test1', 'MYSQL_PASS' => '', 'MYSQL_CHARSET' => 'utf8', ); // 實例化 $guestbook = new Model("guestbook"); // 先用老庫查詢一下 $result = $guestbook->findAll(); dump($result); // 用dbInstance切換新庫 $guestbook->dbInstance($dbconfig, 'master', true); // 從新庫更新 $guestbook->update(array("id"=>1), array("dig"=>200)); // 從新庫查詢一下 $result = $guestbook->findAll(); dump($result); 我們要關注的是dbInstance()方法,該方法可以設置(或覆蓋)當前的數據庫鏈接實例。 dbInstance()方法有三個參數:$db_config, $db_config_key, $force_replace。 - $db_config數據庫配置數組 - $db_config_key是鏈接句柄的標識,一般主庫是master,從庫是slave_0/slave_1...,如果設置成“master”,那么就是覆蓋主庫的鏈接。 - $force_replace默認是false,設置為true會強制覆蓋數據庫鏈接。 也就是說,如果僅僅是$db_config_key="master",那么只有在沒有鏈接上原庫之前才會切換,而同時設置了$force_replace=true之后,那么不管原來有沒有鏈接,都會被覆蓋成新的鏈接。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看