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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 創建數據 [上一頁](63.html "上一頁")[下一頁](65.html "下一頁") 在進行數據操作之前,我們往往需要手動創建需要的數據,例如對于提交的表單數據:`//?獲取表單的POST數據<br class="calibre5"></br>$data['name']?=?$_POST['name'];<br class="calibre5"></br>$data['email']?=?$_POST['email'];<br class="calibre5"></br>//?更多的表單數據值獲取<br class="calibre5"></br>//……`然而ThinkPHP可以幫助你快速地創建數據對象,最典型的應用就是自動根據表單數據創建數據對象,這個優勢在一個數據表的字段非常之多的情況下尤其明顯。 很簡單的例子:`//?實例化User模型<br class="calibre5"></br>$User?=?M('User');<br class="calibre5"></br>//?根據表單提交的POST數據創建數據對象<br class="calibre5"></br>$User->create();<br class="calibre5"></br>//?把創建的數據對象寫入數據庫<br class="calibre5"></br>$User->add();`Create方法支持從其它方式創建數據對象,例如,從其它的數據對象,或者數組等 `$data['name']?=?'ThinkPHP';<br class="calibre5"></br>$data['email']?=?'ThinkPHP@gmail.com';<br class="calibre5"></br>$User->create($data);`甚至還可以支持從對象創建新的數據對象`//?從User數據對象創建新的Member數據對象<br class="calibre5"></br>$User?=?M("User");<br class="calibre5"></br>$User->find(1);<br class="calibre5"></br>$Member?=?M("Member");<br class="calibre5"></br>$Member->create($User);`而事實上,create方法所做的工作遠非這么簡單,在創建數據對象的同時,完成了一系列的工作,我們來看下create方法的工作流程就能明白:步驟 說明 返回 1 獲取數據源(默認是POST數組) 2 驗證數據源合法性(非數組或者對象會過濾) 失敗則返回false 3 檢查字段映射 4 判斷提交狀態(新增或者編輯 根據主鍵自動判斷) 5 數據自動驗證 失敗則返回false 6 表單令牌驗證 失敗則返回false 7 表單數據賦值(過濾非法字段和字符串處理) 8 數據自動完成 9 生成數據對象(保存在內存) 因此,我們熟悉的令牌驗證、自動驗證和自動完成(我們會在后面看到相關的用法)功能,其實都必須通過create方法才能生效。Create方法創建的數據對象是保存在內存中,并沒有實際寫入到數據庫中,直到使用add或者save方法才會真正寫入數據庫。 因此在沒有調用add或者save方法之前,我們都可以改變create方法創建的數據對象,例如:`$User?=?M('User');<br class="calibre5"></br>$User->create();?//創建User數據對象<br class="calibre5"></br>$User->status?=?1;?//?設置默認的用戶狀態<br class="calibre5"></br>$User->create_time?=?time();?//?設置用戶的創建時間<br class="calibre5"></br>$User->add();?//?把用戶對象寫入數據庫`如果只是想簡單創建一個數據對象,并不需要完成一些額外的功能的話,可以使用data方法簡單的創建數據對象。 使用如下:`//?實例化User模型<br class="calibre5"></br>$User?=?M('User');<br class="calibre5"></br>//?創建數據后寫入到數據庫<br class="calibre5"></br>$data['name']?=?'ThinkPHP';<br class="calibre5"></br>$data['email']?=?'ThinkPHP@gmail.com';<br class="calibre5"></br>$User->data($data)->add();`Data方法也支持傳入數組和對象,使用data方法創建的數據對象不會進行自動驗證和過濾操作,請自行處理。但在進行add或者save操作的時候,數據表中不存在的字段以及非法的數據類型(例如對象、數組等非標量數據)是會自動過濾的,不用擔心非數據表字段的寫入導致SQL錯誤的問題。**安全提示:** create方法如果沒有傳值,默認取$_POST數據,如果用戶提交的變量內容,含有可執行的html代碼,請進行手工過濾。`$_POST['title']?=?"<script>alert(1);</script>";`非法html代碼可以使用htmlspecialchars進行編碼,以防止用戶提交的html代碼在展示時被執行,以下是兩種安全處理方法。`$_POST['title']?=?htmlspecialchars($_POST['title']);<br class="calibre5"></br>M('User')->create();``$data['title']?=?$this->_post('title',?'htmlspecialchars');<br class="calibre5"></br>M('User')->create($data);`如果要對全局變量進行修改,請參考本手冊14.4 輸入過濾(VAR_FILTERS參數)和 [TP入門系列之安全設置](http://www.thinkphp.cn/info/184.html) [上一頁](63.html "上一頁")[下一頁](65.html "下一頁")
                  <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>

                              哎呀哎呀视频在线观看