久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

完美解決Thinkphp3.2中插入相同數據的問題

下面小編就為大家帶來一篇完美解決Thinkphp3.2中插入相同數據的問題。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

問題描述

今天在使用TP3.2插入數據的時候,為了避免插入相同的數據(所謂相同的數據,其主鍵相同或者是唯一索引的字段相同),我創建的索引如下圖,主鍵索引為自增字段,不可能出現重復,即唯一索引可能會出現重復,我希望的是uid,year,mounth,day 這三個字段出現相同的話,就更新當前記錄。

完美解決Thinkphp3.2中插入相同數據的問題

問題解決辦法

在之前面對這樣的問題的時候,我們知道,MySQL提供了ON DUPLICATE KEY UPDATE或者REPLACE INTO來解決。

使用ON DUPLICATE KEY UPDATE

插入數據之前,表中就一條記錄,如下圖

完美解決Thinkphp3.2中插入相同數據的問題

SQL語句如下,當插入記錄時候,與表中已有記錄相同,則更新改條記錄,否則插入記錄。

INSERT INTO `work_log` (
`uid`,
`year`,
`mounth`,
`day`,
`status`
) 
VALUES
(1, 2016, 6, 3, 1) 
ON DUPLICATE KEY 
UPDATE 
`status` = 
VALUES
(`status`),
`updated_ts` = NOW();

完美解決Thinkphp3.2中插入相同數據的問題

使用REPLACE INTO

代碼如下:

先執行如下代碼插入一條數據

REPLACE INTO `work_log` (
`uid`,
`year`,
`mounth`,
`day`,
`status`
) 
VALUES
(1, 2016, 6, 2, 1)

效果如下圖

完美解決Thinkphp3.2中插入相同數據的問題

再次執行如下代碼,就會更新上面插入的代碼

REPLACE INTO `work_log` (
`uid`,
`year`,
`mounth`,
`day`,
`status`
) 
VALUES
(1, 2016, 6, 2, 5)

效果如下圖

完美解決Thinkphp3.2中插入相同數據的問題

ON DUPLICATE KEY UPDATE與REPLACE INTO區別

當出現相同的值時候,ON DUPLICATE KEY UPDATE是更新已經存在的記錄,REPLACE INTO是刪除之前的記錄,然后插入新的記錄。

Thinkphp3.2中解決辦法

在Thinkphp3.2中,通過add()函數的第三個參數來處理插入相同數據的問題。

Model.class.PHP中add()方法,調用了Db.class.php中insert中方法,在insert方法中,我們可以看到有如下代碼:

完美解決Thinkphp3.2中插入相同數據的問題

其中$replace 正好是add方法中第三個參數。

以上這篇完美解決Thinkphp3.2中插入相同數據的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

主站蜘蛛池模板: 亚洲国产一区二区视频 | 婷婷激情五月网 | 国产精品国产三级国产aⅴ无密码 | 久久爱黑人激情av摘花 | 亚洲国产黄色av | 好姑娘高清在线观看电影 | 成人午夜激情 | 一区二区视屏 | 日本一区二区在线视频 | 在线国产小视频 | 国产黄色在线 | 亚洲精品乱码久久久久久按摩观 | 色性av| 91精品国产91久久久久久吃药 | 免费毛片www com cn | 午夜精品视频在线观看 | 成人精品一区二区三区 | 欧美男人天堂 | 国产欧美日韩一区二区三区 | 日韩中文字幕免费在线观看 | 黄视频网站在线 | 国产有码 | 欧美情趣视频 | 四虎在线播放 | 国产精品久久久久久久久久久久久 | 精品99爱视频在线观看 | 久久精品伊人 | 精品欧美一区免费观看α√ | 久久99精品久久 | 99精品一区 | 国产福利网站 | 日韩在线精品视频 | 久久av影院 | 天天天插 | 激情视频中文字幕 | 亚洲毛片在线观看 | 午夜精品久久久久久久久久久久久 | 国产二区三区 | 国产精品久久久久一区二区三区 | 亚洲久在线 | 国产黄色麻豆视频 |