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

                # 直接讀取數據之Db 本節我們開始解決`成功連接數據庫后如果查詢teacher數據表`的問題。ThinkPHP大體上提供了兩種與數據庫交互的的方案,分別為:使用Db類進行讀取以及借助模型進行讀取。本小節我們介紹第一種:使用Db類進行讀取。 # Db類 面象對向的世界與人類共同營造的世界一樣豐富多彩,人類細化分工、協作生產,達到當前高度的文明。面象對象也同樣如此,各個對象細化分工、協作生產。與人類世界不同的是,面象對象中的每個對象都是活雷鋒,不僅有求必應,而且分文不收。 ThinkPHP中的Db類就是這樣一個對象(類),它住在`\think\facade`,當我們想找它幫忙時叫它一下就好: ```php \think\facade\Db ``` 該代碼的作用是:找住`\think\facade\`中的`Db`來幫忙。在面向對象的世界中,我們這個代表住在哪的`\think\facade\`又稱為`命名空間`,每個`命名空間`下可以有多個類,每個類的名字的在當前`命名空間`下都是唯一的。 只所以這樣做,是為了解決重名的問題。這就像現實生活中,住在王家村的李家有兩個孩子分別叫李剛和李強,住在孔樓村的李家也有兩個孩子,也叫李剛和李強。那么此時如果想找孔樓村的李剛幫忙,則使用以下代碼: ```php \孔樓村\李剛 ``` 而想找王家村的李剛幫忙,則使用以下代碼: ```php \王家村\李剛 ``` 這保證了每個村都可以有一個李剛,而在調用過程中又可以指定調用的具體是哪個李剛。 >[warning] 在教程中,我們有時候會淡化對象與類的不同。 # Db::query Db類提供的了一個名為query的方法,我們可以直接利用該方法來運行sql語句進行相關數據的查詢。 > Db是Database的縮寫,意為數據庫;query譯為查詢。 ```php public function index() { // think鎮facade村的Db提供了一個query方法,調用該方法可以進行數據查詢 // 使用select * from yunzhi_teacher查詢數據庫 ? $teachers = \think\facade\Db::query('select * from yunzhi_teacher'); // 調用tp提供的dump方法,友好的輸出查詢結果 ? dump($teachers); } ``` * ? php規定,變量名稱必須與`$`打頭,此處的`$teachers`代表定義了一個普通變量,變量名為`teachers`。 * ? `dump`是ThinkPHP提供的一個友好的查看輸出結果的方法。對是php原生函數`var_dump`方法的封裝。 講了這么多,相信再看上節的測試代碼應該有不一樣的感受了吧。 # 二維數組 ![](https://img.kancloud.cn/3b/fe/3bfecfd9bb2cbdb0c3a5776214676ee9_375x402.png) 解釋一下輸出的結果: ``` // 變量類型是個array,即數組,“array:2”表示這個數組中有兩個子項。 ^ array:2 [▼ // 鍵值為0的值是一個數組,這個數組中有7個子項 0 => array:7 [▼ "id" => 1 // 鍵值為id的值為1,數字類型 "name" => "張三" // 鍵值為name的值為 張三,是string類型 "sex" => 0 "username" => "zhangsan" "email" => "zhangsan@mail.com" "create_time" => 123123 "update_time" => 123213 ] 1 => array:7 [▼ "id" => 2 "name" => "李四" "sex" => 0 "username" => "lisi" "email" => "lisi@yunzhi.club" "create_time" => 123213 "update_time" => 1232 ] ] ``` 通過`dump()`方法,我們可以輕松的查看到變量的類值、結構、變量值。數據的結構非常直觀的展示在了我們面前。如果從數據結構的角度上來,上述結構是一個典型的樹狀結構。 ![](https://box.kancloud.cn/2016-06-13_575e5bec37c1d.png) 當我們想輸出teachers中的0號元素時: ```php public function index() { // think鎮facade村的Db提供了一個query方法,調用該方法可以進行數據查詢 // 使用select * from yunzhi_teacher查詢數據庫 $teachers = \think\facade\Db::query('select * from yunzhi_teacher'); // 調用tp提供的dump方法,友好的輸出查詢結果 dump($teachers); dump($teachers[0]); } ``` 當我們想輸出teachers中0號元素的name值時: ```php // 調用tp提供的dump方法,友好的輸出查詢結果 dump($teachers[0]['name']); ``` 當然了,如果變量的類型是字符串,那么我們還可以使用echo語句來替換dump方法: ```php // 調用tp提供的dump方法,友好的輸出查詢結果 dump($teachers[0]['name']); echo $teachers[0]['name']; ``` ![](https://img.kancloud.cn/4b/dc/4bdc6c173933318b33e514ecb48aebfe_391x404.png) 測試結果如上 # 本節作業 1. 使用`var_dump`來替換`dump`,觀察下兩者的不同。 2. 在chrome中查看頁面源代碼,再次觀察`var_dump`與`dump`方法的不同。 # 相關資源 | 內容 | 地址 | | ----------- | ----------- | | 查詢數據 | [http://www.hmoore.net/manual/thinkphp6_0/1037533](http://www.hmoore.net/manual/thinkphp6_0/1037533)| | 本節源碼 | [https://github.com/mengyunzhi/tp6/archive/step2.2.3.zip](https://github.com/mengyunzhi/tp6/archive/step2.2.3.zip) |
                  <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>

                              哎呀哎呀视频在线观看