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

                # 插入數據 確切的說,我們在這里將展示如何將一個數組插入到數據表中。 假設將下面這樣一條數據,插入到數據表中。 ~~~ $teacher = array(); $teacher['name'] = '王五'; $teacher['username'] = 'wangwu'; $teacher['sex'] = '1'; $teacher['email'] = 'wangwu@yunzhi.club'; ~~~ ## 新建action (function) 是的,我們通常將controller中的function,叫做action、觸發器,以后我們都將這樣叫下去。如果我們說觸發器,那么它肯定是某個模塊下的某個控制器中的一個方法。如下所示: ~~~ public function insert() { return 'hello insert'; } ~~~ 測試結果如下圖所示: ![](https://box.kancloud.cn/c306772e0881782d8cb41fa918ea04f6_376x79.png) 如圖,我們新建了一個insert觸發器,用來實現數據添加的功能。 ~~~ git checkout -f step3.3.1.1 ~~~ 執行上述命令后,上述示例代碼信息如下: ![](https://box.kancloud.cn/545490256e4f7e47586c1ae4f017901f_948x615.png) > 再次強調:測試很關鍵,每一步都需要非常的清晰的明了現在是哪個URL,這個URL又將觸發哪個類中的哪個方法。同時,必須要測試出,是否我們認為的這個URL,就是觸發的我們認為的那個方法,而最終的驗證環節,就是我們的測試。 ## 整理思路 ~~~ public function insert() { // 新建測試數據 // 引用teacher數據表對應的模型 // 向teacher表中插入數據并判斷是否插入成功 } ~~~ 在完成一個功能之前,或是我們在編碼之前,做的事情,先是要寫注釋,把整個流程以注釋的形式非常清楚的擺在眼前,然后再進行編碼。 ## 新建測試數據 ~~~ public function insert() { // 新建測試數據 $teacher = array(); // 這種寫法也可以 $teacher = []; $teacher['name'] = '王五'; $teacher['username'] = 'wangwu'; $teacher['sex'] = '1'; $teacher['email'] = 'wangwu@yunzhi.club'; var_dump($teacher); // 引用teacher數據表對應的模型 // 向teacher表中插入數據并判斷是否插入成功 } ~~~ 測試結果如下圖所示: ![](https://box.kancloud.cn/ebffb65ee34b3e527c7c17e40baa52fa_573x173.png) ~~~ git checkout -f step3.3.1.2 ~~~ 執行上述命令后,上述示例代碼信息如下: ![](https://box.kancloud.cn/cdcc564441c2ae9b8976509647204b63_923x593.png) ## 引入teacher表對應的模型 由于我們已經use過Teacher模型,所以這次可以直接進行使用。 ~~~ public function insert() { // 新建測試數據 $teacher = array(); // 這種寫法也可以 $teacher = []; $teacher['name'] = '王五'; $teacher['username'] = 'wangwu'; $teacher['sex'] = '1'; $teacher['email'] = 'wangwu@yunzhi.club'; var_dump($teacher); // 引用teacher數據表對應的模型 $Teacher = new Teacher(); var_dump($Teacher); // 向teacher表中插入數據并判斷是否插入成功 } ~~~ 測試結果如下圖所示: ![](https://box.kancloud.cn/ce50174681db2a8ea789400f94508a4f_613x486.png) ## 插入數據 ~~~ public function insert() { // 新建測試數據 $teacher = array(); // 這種寫法也可以 $teacher = []; $teacher['name'] = '王五'; $teacher['username'] = 'wangwu'; $teacher['sex'] = '1'; $teacher['email'] = 'wangwu@yunzhi.club'; // 引用teacher數據表對應的模型 $Teacher = new Teacher(); // 向teacher表中插入數據并判斷是否插入成功 $state = $Teacher->data($teacher)->save(); var_dump($state); } ~~~ 測試結果如下圖所示: ![](https://box.kancloud.cn/1abae1a1948a87ac4351bfec2c439480_530x67.png) 我們看到返回的是一個數字 1,是的,如果插入成功,則會返回成功插入的條數。 在開發模式下,我們認為,只要未拋出異常,那么就是插入成功。 ~~~ git checkout -f step3.3.1.3 ~~~ 執行上述命令后,上述示例代碼信息如下: ![](https://box.kancloud.cn/87c8164c61be9d904b61cbd645468643_899x635.png) ### 測試錯誤 有正確的添加數據,就必然有錯誤的添加數據。當錯誤添加數據時,會報什么錯誤呢? 現在我們將email更改為email1: ~~~ $teacher['email1'] = 'wangwu@yunzhi.club'; ~~~ 執行結果如下圖所示: ![](https://box.kancloud.cn/635e17e528e9a964271e49a822c92f7c_713x355.png) 是的,當我們看到上面的錯誤時,大多是在代碼中輸入了數據字段名,由這個字段名在實際的數據表中并不存在。所以以后再看到類似錯誤時,一下就能知道問題出現在哪了吧。 ## 去除測試代碼,并定制提示信息 最終的軟件,當然是給用戶使用的。這就要求我們需要站在用戶的角度上去思索,用戶到底需要什么樣的軟件,需要什么樣的交互。 在這里,用戶并不關心變量的值是什么,他們只關心用戶是否被直接添加了。 代碼定制如下: ~~~ public function insert() { // 新建測試數據 $teacher = array(); // 這種寫法也可以 $teacher = []; $teacher['name'] = '王五'; $teacher['username'] = 'wangwu'; $teacher['sex'] = '1'; $teacher['email'] = 'wangwu@yunzhi.club'; // 引用teacher數據表對應的模型 $Teacher = new Teacher(); // 向teacher表中插入數據并判斷是否插入成功 $Teacher->data($teacher)->save(); return $teacher['name'] . '成功增加至數據表中'; } ~~~ 測試結果如下圖所示: ![](https://box.kancloud.cn/2016-06-14_575f894a665be.png) ~~~ git checkout -f step3.3.1.4 ~~~ 執行上述命令后,上述示例代碼信息如下: ![](https://box.kancloud.cn/e5bf4c284e7eda33bb1cfb0d07accd5f_901x652.png) ## 面向對象 **一切皆對象** ---- 插入(新增)數據時也同樣如此。下面,我們使用面象對象的思想,重寫數據的插入操作。 ~~~ public function insert() { // 實例化Teacher空對象 $Teacher = new Teacher(); // 為對象的屬性賦值 $Teacher->name = '王五'; $Teacher->username = 'wangwu'; $Teacher->sex = '1'; $Teacher->email = 'wangwu@yunzhi.club'; // 執行對象的插入數據操作 var_dump($Teacher->save()); return $Teacher->name . '成功增加至數據表中。新增ID為:' . $Teacher->id; } ~~~ 測試結果為: ![](https://box.kancloud.cn/8899f5113bc0970872b74f00428b9a70_619x110.png) > 沒錯,面象對象簡單來講,就是:先實例化一個對象,然后在這個對象上進行操作。 相信聰明的你還可以輕松的想到,數據的刪除、更新也是如此。先有對象,后有操作。 去除測試信息: ~~~ public function insert() { // 實例化Teacher空對象 $Teacher = new Teacher(); // 為對象的屬性賦值 $Teacher->name = '王五'; $Teacher->username = 'wangwu'; $Teacher->sex = '1'; $Teacher->email = 'wangwu@yunzhi.club'; // 執行對象的插入數據操作 $Teacher->save(); return $Teacher->name . '成功增加至數據表中。新增ID為:' . $Teacher->id; } ~~~ ~~~ git checkout -f step3.3.1.5 ~~~ 執行上述命令后,上述示例代碼信息如下: ![](https://box.kancloud.cn/1d5c1e4623917add9bcd2a9c8638c7fa_1062x500.png)
                  <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>

                              哎呀哎呀视频在线观看