php處理數(shù)據(jù)時(shí)會(huì)有一個(gè)等待時(shí)間,就是所說(shuō)的超時(shí)時(shí)間,而且如果使用mysql的話,它也有一個(gè)超時(shí)時(shí)間,運(yùn)行一串代碼時(shí)間如果超過(guò)配置文件的時(shí)間,會(huì)被中斷不運(yùn)行。第一種你可以修改php配置文件timeout的運(yùn)行時(shí)間,第二你可以分批處理大量數(shù)據(jù),注意是分批處理,就OK了。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、成都小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了康保免費(fèi)建站歡迎大家使用!
1、首先我們準(zhǔn)備一個(gè)含有數(shù)據(jù)的Excel表格,表頭和數(shù)據(jù)表中的表字段相對(duì)應(yīng)。
2、在ThinkPHP中引入PHPExcel類庫(kù)。
3、然后我們編寫(xiě)導(dǎo)入的PHP代碼。
4、然后我們編寫(xiě)導(dǎo)出的PHP代碼。
5、然后我們進(jìn)行導(dǎo)出測(cè)試發(fā)現(xiàn)可以導(dǎo)出即可。
這個(gè)需要配合js,打開(kāi)一個(gè)html頁(yè)面,首先js用ajax請(qǐng)求頁(yè)面,返回第一個(gè)頁(yè)面信息確定處理完畢(ajax有強(qiáng)制同步功能),ajax再訪問(wèn)第二個(gè)頁(yè)面。(或者根據(jù)服務(wù)器狀況,你可以同時(shí)提交幾個(gè)URL,跑幾個(gè)相同的頁(yè)面)
參數(shù)可以由js產(chǎn)生并傳遞url,php后臺(tái)頁(yè)面根據(jù)URL抓頁(yè)面。然后ajax通過(guò)php,在數(shù)據(jù)庫(kù)或者是哪里設(shè)一個(gè)標(biāo)量,標(biāo)明檢測(cè)到哪里。由于前臺(tái)的html頁(yè)面執(zhí)行多少時(shí)候都沒(méi)問(wèn)題,這樣php的內(nèi)存限制和執(zhí)行時(shí)間限制就解決了。
因?yàn)椴粫?huì)浪費(fèi)大量的資源用一個(gè)頁(yè)面來(lái)跑一個(gè)瞬間500次的for循環(huán)了。(你的500次for循環(huán)死了原因可能是獲取的數(shù)據(jù)太多,大過(guò)了php限制的內(nèi)存)
不過(guò)印象中curl好像也有強(qiáng)制同步的選項(xiàng),就是等待一個(gè)抓取后再執(zhí)行下一步。但是這個(gè)500次都是用一個(gè)頁(yè)面線程處理,也就是說(shuō)肯定會(huì)遠(yuǎn)遠(yuǎn)大于30秒的默認(rèn)執(zhí)行時(shí)間。
if?($strleng100){
//如果大于100條就每次寫(xiě)入100,休息1秒,然后繼續(xù)寫(xiě),直到寫(xiě)完為止
$write_count?=?floor($strleng/100);
while?($write_count??0){
for?($i=0;$i100;$i++){
echo?"INSERT?INTO?tbl_name?(a,b,c)?VALUES(1,2,3)";//寫(xiě)100次就休息
}
//echo?"INSERT?INTO?tbl_name?(a,b,c)?VALUES(1,2,3),(4,5,6),(7,8,9);";這樣可以一次插入多條數(shù)據(jù),效率更高
//參考
$write_count?-=1?;
sleep(1);
echo?'休息1秒';
}
}
$sql?=?"insert?into?myorder?(pid,amount,ordernumber,time,uid,status)?VALUES?";
foreach?($ShoppingCart?as?$k?=?$v){
$sql?.=?"(".$v['pid'].",".$v['amount'].",'$ordernumber','$time','$uid','$status'),";
$sql?=?substr($sql,?0,strlen($sql)-1);
$res?=?mysql_query($sql,$conn);
if(!$res)?return?false;
}
簡(jiǎn)介:可以利用工具軟件導(dǎo)出成Excel文件
工具原料:Apache+php+mysql網(wǎng)站運(yùn)行環(huán)境,phpMyAdmin v4.6.2
1、下載phpMyAdmin v4.6.2軟件后解壓放在網(wǎng)站根目錄
2、用root用戶和密碼登入phpMyAdmin,在左邊欄點(diǎn)擊要導(dǎo)出的數(shù)據(jù)庫(kù),然后點(diǎn)擊要導(dǎo)出的數(shù)據(jù)表,最后點(diǎn)擊導(dǎo)出如圖所示。
3、進(jìn)入導(dǎo)出頁(yè)面后如圖按圖中紅色標(biāo)注的操作
4、另外還要注意選擇的是要保存的文件的字符集:如圖所示才能保證保存出來(lái)的文件不會(huì)出現(xiàn)亂碼
5、最后點(diǎn)擊執(zhí)行按鈕,OK.
分享名稱:php大批量數(shù)據(jù) php批量刪除數(shù)據(jù)
網(wǎng)頁(yè)網(wǎng)址:http://chinadenli.net/article24/dodicje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、企業(yè)建站、網(wǎng)站內(nèi)鏈、ChatGPT、外貿(mào)網(wǎng)站建設(shè)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)