久久久久久久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久久精品蜜桃 | 国产伊人网 | 国产在线成人 | 黄色一级免费看 | 欧美级毛片 | 日韩视频在线免费观看 | 日本加勒比在线观看 | 成人毛片100免费观看 | 久久性色| 亚洲综合精品 | 中国久久久 | 日本一级淫片 | 亚洲精品美女 | 亚洲成人一区二区 | 国产精品视屏 | 日本黄a三级三级三级 | 欧美成人综合 | 成人在线视频免费观看 | 欧美成人一级片 | 婷婷六月天 | 欧美日韩亚洲国产 | 久久精品导航 | 日韩一区三区 | 一区在线观看 | www日韩| 亚洲黄色三级 | 午夜一区| 国产91精品在线观看 | 婷婷六月色 | 在线看日韩 | 久久久久久久97 | 欧美三级在线视频 | 日韩黄色免费视频 | 免费看黄色的视频 | 亚洲免费视频一区 | 国产亚洲欧美在线 | 亚洲激情第一页 | 国产免费黄色 | 色鬼久久 |