国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

php - mysql在for循環(huán)中插入數(shù)據(jù)重復(fù)問題
PHP中文網(wǎng)
PHP中文網(wǎng) 2017-04-10 15:54:38
0
3
587

html頁面發(fā)送請求到php,然后php執(zhí)行for循環(huán)插入多條數(shù)據(jù),發(fā)現(xiàn)偶爾會有部分?jǐn)?shù)據(jù)重復(fù)

場景

  • 抓取網(wǎng)上圖片保存,因此執(zhí)行時(shí)間挺長,但是設(shè)置過,不至于超時(shí)
  • for循環(huán)一次,下載圖片,select判斷是否有重復(fù)數(shù)據(jù),沒有重復(fù),先將圖片上傳到ftp服務(wù)器,獲取結(jié)果,然后會在三個(gè)表里面各插入一條數(shù)據(jù)(每次會停0.5秒)

問題

發(fā)現(xiàn)有時(shí)候,數(shù)據(jù)庫中數(shù)據(jù)會出現(xiàn)重復(fù)(下載下來的數(shù)據(jù)沒有重復(fù),因?yàn)槭峭ㄟ^別人的接口請求的,而且情況只是偶爾出現(xiàn)),而且id是相鄰的(上傳ftp也上傳了兩次,感覺不是mysql問題),想請教一下是什么原因?qū)е碌模?/p>

PS

  • 希望有人能解答原因
  • 希望有除了加唯一索引以外的其他方法來防止
PHP中文網(wǎng)
PHP中文網(wǎng)

認(rèn)證高級PHP講師

reply all(3)
大家講道理

這個(gè)原因還是真不好判斷。

如何防止?批量插入之前先進(jìn)行一次檢查,是否有重復(fù)數(shù)據(jù)。通過檢查之后再進(jìn)行事物插入。

Ty80

請問你是圖片下載完再插入下一條數(shù)據(jù)的嗎? 其實(shí)可以把圖片下載的服務(wù)器放到隊(duì)列里面,做個(gè)異步操作,讓下載圖片跟插入數(shù)據(jù)錯(cuò)開

大家講道理

如果下載數(shù)據(jù)邏輯沒有問題,那肯定是html頁面發(fā)送多次請求到PHP。

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template