標準的方法是鎖定數(shù)據(jù)庫,你開始寫數(shù)據(jù)的時候就獨占方式鎖定表,這時候其它用戶(或者同一用戶的其它進程)查詢數(shù)據(jù)庫會報錯,直到你修改完畢后再解除表鎖定。
創(chuàng)新互聯(lián)是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,專業(yè)領(lǐng)域包括網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)、電商網(wǎng)站制作開發(fā)、微信小程序定制開發(fā)、微信營銷、系統(tǒng)平臺開發(fā),與其他網(wǎng)站設(shè)計及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!
此外,還有一個更加完美一點的方法:增加TYPE字段的含義,1表示需要發(fā)送、2表示已經(jīng)發(fā)送、3表示正在發(fā)送,你的程序每次只查詢TYPE=1的來處理,處理之前整體修改TYPE=3(這個修改應(yīng)該瞬間完成,而且一個UPDATE語句執(zhí)行的時候MYSQL會自動鎖定),然后慢慢發(fā)送和修改TYPE=2。
"user_log(刪除股票,$user_id,$time,$jinbi);"===錯誤非常有可能就是在這里,數(shù)據(jù)更新后,再次執(zhí)行應(yīng)當(dāng)放在判斷外面,在里面的話發(fā)送的還是原來數(shù)據(jù)。。。
你好,這是我解決你這個問題的思路,希望能幫到你:比如你是根據(jù)a字段設(shè)置唯一,在每次插入之前就使用下一條需要插入的值去數(shù)據(jù)表里面查詢,如果查詢到了就跳出當(dāng)前循環(huán),下次循環(huán)繼續(xù)(continue),希望能幫到你!
顯然是你的數(shù)據(jù)有問題
如果只是你說的這些內(nèi)容,你的代碼是完全沒有問題的
推測可能是時間不同,例如1和1分別是1月份和2月份的。
再有可能就是你重復(fù)插入了一次數(shù)據(jù)。
或者你到phpMyAdmin里看看原始數(shù)據(jù)是否正確
輸出全部內(nèi)容看看
echo "$row-sr/$row-srlx/$row-date/$row-person/$row-namebr/";
1.首先,題主應(yīng)該選一個相似度的計算維度,比如content字段,type字段等;
2.其次,題主考慮一下各個字段的權(quán)重,比如type字段必須相同,則讓type字段使用typeWeight(例如賦值0.8)作為乘積的因子,而content字段本身是比較長的,所以需要計算出一個hash值,比如使用特定算法計算出一個hash值,然后把這個hash值按照16進制計算得到10進制數(shù),再給一個權(quán)重contentWeight(例如0.2),另外再選取一個字段,比如description描述字段,再給一個權(quán)重descriptionWeight...
3.最后得到一個當(dāng)前插入到表中的記錄綜合hash,typeWeight(contentHashcontentWeight+descriptionHash*descriptionWeight
+...),可能會涉及到大整數(shù)計算,不過PHP有BCMATH擴展可以使用,最終得到一個數(shù)值的綜合hash值,保存到數(shù)據(jù)庫的一個字段中,這個東西就可以理解為本條記錄的特征值。
能不能夠優(yōu)化一下你的代碼行,我看著都眼花。
最好代碼開始和結(jié)束之間不要加別的東西,會打斷代碼。
這樣讓別人無法閱讀代碼, 就更加無法找到錯誤在哪兒了。
分享名稱:php數(shù)據(jù)重復(fù)問題,php數(shù)據(jù)重復(fù)問題怎么解決
瀏覽路徑:http://chinadenli.net/article0/hesoio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、電子商務(wù)、用戶體驗、搜索引擎優(yōu)化、網(wǎng)站設(shè)計、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)