php導(dǎo)出大量數(shù)據(jù)到Excel,可以通過生成多個(gè)Excel文件,然后壓縮成壓縮包解決。方案是:假如我們數(shù)據(jù)庫有10w條數(shù)據(jù),每2000條數(shù)據(jù)生成一個(gè)Excel文件,這樣每次只要從數(shù)據(jù)庫里查詢出2000條數(shù)據(jù)即可,一定要分頁去查詢。
在朝陽等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,朝陽網(wǎng)站建設(shè)費(fèi)用合理。
php導(dǎo)出數(shù)據(jù)excel有專門的庫,當(dāng)導(dǎo)出少量數(shù)據(jù)的時(shí)候速度很快,但是當(dāng)數(shù)據(jù)量大的時(shí)候就會(huì)存在服務(wù)器內(nèi)存不夠之類的。所以在導(dǎo)出大量數(shù)據(jù)的時(shí)候就應(yīng)該分頁查詢數(shù)據(jù),避免服務(wù)器宕機(jī)。
write-save(php://output);打開頁面,刷新的時(shí)候會(huì)彈出對(duì)話框,讓你選擇文件保存路徑和文件名稱,我直接放在了桌面上,如圖所示;打開表格后,數(shù)據(jù)和格式跟代碼中的一致,說明PHP導(dǎo)出的Excel是正確的。
下載phpMyAdmin v2軟件后解壓放在網(wǎng)站根目錄 用root用戶和密碼登入phpMyAdmin,在左邊欄點(diǎn)擊要導(dǎo)出的數(shù)據(jù)庫,然后點(diǎn)擊要導(dǎo)出的數(shù)據(jù)表,最后點(diǎn)擊導(dǎo)出如圖所示。
首先利用PHPExcel實(shí)現(xiàn)excel的導(dǎo)入導(dǎo)出功能,然后做一個(gè)批處理程序即可,看你運(yùn)用的php環(huán)境,根據(jù)不同環(huán)境來設(shè)置不同批處理命令。
第一種你可以修改php配置文件timeout的運(yùn)行時(shí)間,第二你可以分批處理大量數(shù)據(jù),注意是分批處理,就OK了。
在上面的對(duì)話框中可以直接單擊對(duì)話框上的【下一步】按鈕,進(jìn)入下面的操作。這時(shí)會(huì)進(jìn)入一個(gè)顯示微軟的最終用戶許可協(xié)議書的窗口,里面的內(nèi)容規(guī)定了最終用戶的一些必要的義務(wù)。
我先說下,一般用這個(gè)提示的時(shí)候我個(gè)人認(rèn)為用ajax做,頁面加載的時(shí)候顯示正在努力查詢中。。
set_time_limit(0); //設(shè)置不超時(shí),程序一直運(yùn)行。
我覺得不管后臺(tái)有沒有處理完成,5秒的時(shí)候輸出OK,這個(gè)是可以的,用前端JS就行,但是輸出OK后,你斷開連接,這個(gè)就不現(xiàn)實(shí)了,連接都已經(jīng)斷開了,就跟后臺(tái)沒關(guān)系了。
你可以先看看每次中斷是固定時(shí)長,還是固定次數(shù);也可以多打日志,每次循環(huán)都輸出些參考參數(shù)如循環(huán)條件、內(nèi)存使用等信息,再分析哪些可能導(dǎo)致程序中斷的原因。
可以嘗試增加PHP配置的內(nèi)存限制,或者在導(dǎo)出過程中分批次導(dǎo)出數(shù)據(jù)。數(shù)據(jù)庫連接中斷:若在導(dǎo)出過程中出現(xiàn)數(shù)據(jù)庫連接中斷,會(huì)導(dǎo)致導(dǎo)出失敗??梢試L試檢查數(shù)據(jù)庫連接是否正常,是否存在網(wǎng)絡(luò)問題等。
不要把所有內(nèi)容都寫到同一個(gè)DIV中間,這樣?xùn)|西多的時(shí)候就會(huì)卡住。要分層次顯示,另外碰到數(shù)據(jù)庫查詢文字非常多的你還可以使用AJAX 返回?cái)?shù)據(jù) 這樣HTML就可以很快的顯示 顯示完畢才去讀數(shù)據(jù)庫這樣速度會(huì)快很多。
首先,安裝程序會(huì)顯示一個(gè)啟動(dòng)畫面。如果使用的是不同的安裝盤,也許Readme文件的格式可能有所不同,但是不影響應(yīng)用程序的安裝。在上面的對(duì)話框中可以直接單擊對(duì)話框上的【下一步】按鈕,進(jìn)入下面的操作。
在php.ini中,有一個(gè)參數(shù)max_execution_time可以設(shè)置PHP腳本的最大執(zhí)行時(shí)間,但是,在php-cgi(php-fpm)中,該參數(shù)不會(huì)起效。