<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>

                [TOC] ## table方法的使用 #### 1、功能:選擇當前操作的數據表實例(完整表名) #### 2、源碼位置:/thinkphp/library/think/db/Query.php ~~~ /** * 指定當前操作的數據表 * @access public * @param mixed $table 表名 * @return $this */ public function table($table) { if (is_string($table)) { if (strpos($table, ',')) { $tables = explode(',', $table); $table = []; foreach ($tables as $item) { list($item, $alias) = explode(' ', trim($item)); if ($alias) { $this->alias([$item => $alias]); $table[$item] = $alias; } else { $table[] = $item; } } } elseif (strpos($table, ' ')) { list($table, $alias) = explode(' ', $table); $table = [$table => $alias]; $this->alias($table); } } else { $tables = $table; $table = []; foreach ($tables as $key => $val) { if (is_numeric($key)) { $table[] = $val; } else { $this->alias([$key => $val]); $table[$key] = $val; } } } $this->options['table'] = $table; return $this; } ~~~ #### 3、參數與返回值: * 閱讀源碼發現: * 參數只有一個:數據表名稱 ,而且必須是完整的、包括表前綴; * 參數可以指定數據庫名稱,實再跨庫選擇數據表; * 返回的是查詢類Query的對象自身,便于后面鏈式調用。 #### 4、適用環境: * 需要完整的數據表名稱(如某張表前綴與系統配置不一致或沒有設置前綴); * 需要跨越數據庫,選擇其它庫中的數據表操作時; * 需要給當前數據表設定別名訪問,以避免與關鍵字沖突,特別是多表查詢時; >[danger] 重要提示:setTable方法功能與table非常類似,但還是有區別的: 1、table方法指定當前正在操作的數據表; 2、setTable方法設置當前腳本默認的數據表; 3、即當前腳本中,如果用setTable設置了默認數據表,那么后面語句就不用再次調用table了。 ~~~ //設置了默認數據表為:setTable( 'tp5_staff' ),后面的操作都針對該表 dump( Db::setTable( 'tp5_staff' ) -> where( 'id = 1020' ) -> find( ) ) ; //查詢 id= 1025的記錄,不用再設置數據表了 dump( Db:: where( 'id = 1020' ) -> find( ) ) ; ~~~ >[warning] 為了代碼清晰,健壯易擴展,不建議用setTable來犧牲靈活性 #### 5、調用語法(以:tp5_staff表為例): * <span style="color:#999;">通過 Db.php類中的:static _callStatic() 自動實現靜態方法調用(了解即可)</span> * 數據庫類靜態調用: * 完整數據表名稱:Db::table('tp5_staff'); * 帶數據庫名稱的完整數據表:Db::table('tp5.tp5_staff'); * 給數據表設置別名調用:Db::table(['tp_staff'=>'staff']); #### 6、實例: **dump( )方法介紹:** >[success] 1.dump( )方法是框架提供給開發者的一個非常好用的調式工具,可以對運行結果中的數據進行人性化的展示,可以認為是PHP原生var_dump( )函數加強版,或者格式化的var_dump( ); 2.dump( ) 方法,定義在:/thinkphp/library/think/Debug.php 類中,該類隨框架啟動,所以你可以直接使用dump( ) 3.如果你這樣使用:Debug::dump( ) 也可以,但必須在腳本前面引入Debug.php類文件 ,即:use think\Debug; 1. (完整表名)選擇tp5_staff表,查詢id等于1003的數據 * 為節省篇幅,只列出方法中關鍵語句,相信你完全可以自己補全: ~~~ dump(Db::table('tp5_staff')->find('1003')); ~~~ 2. (帶數據庫的完整表名)選擇tp5_staff表,查詢id等于1003的數據 ~~~ dump(Db::table('tp5.tp5_staff')->find('1003')); ~~~ 3. (設置表別名)選擇tp5_staff表,查詢id等于1003的數據 ~~~ dump(Db::table(['tp5.tp5_staff'=>'staff'])->find('1003')); ~~~ * 運行結果: ~~~ array(7) { ["id"] => int(1003) ["name"] => string(6) "楊過" ["sex"] => int(0) ["age"] => int(35) ["salary"] => float(5303) ["dept"] => string(9) "市場部" ["hiredate"] => string(10) "2014-09-22" } ~~~ * 參數說明 * 將參數放在一個數組中,每個數據元素,對應一個數據表; * 原始完整表名做為數據元素鍵名,別名做為數據元素的值; * 多表聯合查詢時,設置表別名非常重要,特別是表自身遞歸查詢時。 #### 7、局限性或注意事項: * table()方法,對數據表名要求比較嚴格,不夠簡潔; * 如果在數據庫連接配置中設置了表前綴,完全可以用后面要學的name()替代; * 日常開發中,完全可以用模型調用方式,避免用這種方式。 #### 小作業: * 課后,把本課的實例全部上機操作一遍,以加深理解。
                  <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>

                              哎呀哎呀视频在线观看