18禁黄动漫网站禁片无遮挡观看|国产在线观看免费A∨|国产偷伦在线2020

  • 
    
    1. <table id="dwhxz"><cite id="dwhxz"></cite></table>
    2. thinkphp6中insert方法不返回自增ID?數據庫操作變動之insert

      2022-09-16 15:56 欄目:技術開發 查看(6457)

      通常有這樣一個需求:發布一篇帖子,帖子中包含一些圖片等附件,所以在數據結構上面需要把附件表和帖子表關聯起來;在發布帖子的時候先插入帖子表,返回帖子的id,然后再插入附件表記錄(使用帖子id關聯起來)。這樣的需求就需要先插入A表得到其自增的id號,然后再插入B表。

      但某項目從thinkphp5升級到thinkphp6后,類似的流程就不能夠實現了,發現返回的自增ID都變成了1,而不是具體的自增ID號。那么是不是thinkphp6刪除了這個功能呢?并不是,通過查看thinkphp關于數據庫操作方式發現insert方法參數有所調整。

      thinkphp5關于insert方法節選如下:

      ?/**
      * 插入記錄
      * @access public
      * @param mixed $data 數據
      * @param boolean $replace 是否replace
      * @param boolean $getLastInsID 返回自增主鍵
      * @param string $sequence 自增序列名
      * @return integer|string
      */
      public function insert(array $data = [], $replace = false, $getLastInsID = false, $sequence = null){…}

      thinkphp6關于insert方法節選如下:

      /**
      * 插入記錄
      * @access public
      * @param array $data 數據
      * @param boolean $getLastInsID 返回自增主鍵
      * @return integer|string
      */
      public function insert(array $data = [], bool $getLastInsID = false){…}

      從上面兩個對比可以看得出來,insert方法參數從4個改為2個,如果依然使用thinkphp5常用的insert($data,false,true)來返回自增ID會出現異常,因為thinkphp6的是否返回自增參數改為了該方法的第二個參數;這個情況下應該使用inset($data,true)來實現插入后返回自增。

      tp5數據庫常用操作方法見:

      thinkphp\library\think\db\Query.php

      tp6數據庫常用操作方法見:

      vendor\topthink\think-orm\src\db\BaseQuery.php

      最后,如果沒有特別需求,已經上線的項目不建議從thinkphp5升級到thinkphp6,特別是業務邏輯復雜的項目,需要調整的地方比較多。

      與我們的項目經理聯系
      掃二維碼與項目經理溝通

      我們在微信上24小時期待你的聲音

      解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯網交流

      轉載請注明出處:thinkphp6中insert方法不返回自增ID?數據庫操作變動之insert - 微構網絡
      分享:
    3. 
      
      1. <table id="dwhxz"><cite id="dwhxz"></cite></table>