国产又猛又爽又黄视频|在线观看人成视频免费|少妇高潮太爽了在线视频|911国产免费无码专区|特黄做受又大又粗又长大片|欧美一级二级免费在线观看|日日夜人人澡人人澡人人看免|欧洲午夜精品一级毛片在线播放

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

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

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

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

thinkphp5關(guān)于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關(guān)于insert方法節選如下:

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

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

tp5數據庫常用操作方法見(jiàn):

thinkphp\library\think\db\Query.php

tp6數據庫常用操作方法見(jiàn):

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

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

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

我們在微信上24小時(shí)期待你的聲音

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

轉載請注明出處:thinkphp6中insert方法不返回自增ID?數據庫操作變動(dòng)之insert - 微構網(wǎng)絡(luò )
分享:
佛山市| 延川县| 喀喇沁旗| 锡林郭勒盟| 桦甸市| 竹北市| 武宣县| 涞源县| 阿瓦提县| 蒲城县| 呼和浩特市| 乌鲁木齐县| 榕江县| 龙江县| 金乡县| 措勤县| 普兰店市| 五莲县| 新龙县| 黄龙县| 伊吾县| 藁城市| 丰台区| 友谊县| 克东县| 五大连池市| 巩义市| 平度市| 分宜县| 左权县| 秀山| 工布江达县| 潼南县| 江门市| 瑞安市| 堆龙德庆县| 汉寿县| 岫岩| 长春市| 通城县| 龙陵县|