2024国产成人精品免费视频|日本免费一区二区三区毛片|久久97超碰色中文字幕|亚洲天堂a中文字幕

thinkphp6中insert方法不返回自增ID?數(shù)據(jù)庫(kù)操作變動(dòng)之insert

2022-09-16 15:56 欄目:技術(shù)開發(fā) 查看(10808)

通常有這樣一個(gè)需求:發(fā)布一篇帖子,帖子中包含一些圖片等附件,所以在數(shù)據(jù)結(jié)構(gòu)上面需要把附件表和帖子表關(guān)聯(lián)起來;在發(fā)布帖子的時(shí)候先插入帖子表,返回帖子的id,然后再插入附件表記錄(使用帖子id關(guān)聯(lián)起來)。這樣的需求就需要先插入A表得到其自增的id號(hào),然后再插入B表。

但某項(xiàng)目從thinkphp5升級(jí)到thinkphp6后,類似的流程就不能夠?qū)崿F(xiàn)了,發(fā)現(xiàn)返回的自增ID都變成了1,而不是具體的自增ID號(hào)。那么是不是thinkphp6刪除了這個(gè)功能呢?并不是,通過查看thinkphp關(guān)于數(shù)據(jù)庫(kù)操作方式發(fā)現(xiàn)insert方法參數(shù)有所調(diào)整。

thinkphp5關(guān)于insert方法節(jié)選如下:

?/**
* 插入記錄
* @access public
* @param mixed $data 數(shù)據(jù)
* @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關(guān)于insert方法節(jié)選如下:

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

從上面兩個(gè)對(duì)比可以看得出來,insert方法參數(shù)從4個(gè)改為2個(gè),如果依然使用thinkphp5常用的insert($data,false,true)來返回自增ID會(huì)出現(xiàn)異常,因?yàn)閠hinkphp6的是否返回自增參數(shù)改為了該方法的第二個(gè)參數(shù);這個(gè)情況下應(yīng)該使用inset($data,true)來實(shí)現(xiàn)插入后返回自增。

tp5數(shù)據(jù)庫(kù)常用操作方法見:

thinkphp\library\think\db\Query.php

tp6數(shù)據(jù)庫(kù)常用操作方法見:

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

最后,如果沒有特別需求,已經(jīng)上線的項(xiàng)目不建議從thinkphp5升級(jí)到thinkphp6,特別是業(yè)務(wù)邏輯復(fù)雜的項(xiàng)目,需要調(diào)整的地方比較多。

與我們的項(xiàng)目經(jīng)理聯(lián)系
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流

轉(zhuǎn)載請(qǐng)注明出處:thinkphp6中insert方法不返回自增ID?數(shù)據(jù)庫(kù)操作變動(dòng)之insert - 微構(gòu)網(wǎng)絡(luò)
分享:
標(biāo)簽:
科技| 和龙市| 宁远县| 赣州市| 衡南县| 玉树县| 富宁县| 龙川县| 芒康县| 宜丰县| 札达县| 乌恰县| 临夏县| 安仁县| 麻江县| 钟祥市| 汽车| 株洲市| 宣城市| 谢通门县| 通许县| 宁南县| 宾川县| 福贡县| 东明县| 壶关县| 温泉县| 静乐县| 岳阳县| 横山县| 阿克陶县| 永安市| 无棣县| 石城县| 丰县| 道真| 富锦市| 靖州| 奎屯市| 鄂温| 大安市|