在使用PhpMyAdmin的時候經(jīng)常用到數(shù)據(jù)的導(dǎo)入和導(dǎo)出(Export/Import),但是在導(dǎo)入大數(shù)據(jù)的時候由于php上傳文件的限制和腳本響應(yīng)時間的限制,導(dǎo)致phpMyAdmin無法導(dǎo)入大數(shù)據(jù)。很多時候都是由于文件過大,從本地瀏覽上傳導(dǎo)入,容易中斷失敗,有沒有更好的方法呢?
公司主營業(yè)務(wù):做網(wǎng)站、網(wǎng)站設(shè)計、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出灤平免費做網(wǎng)站回饋大家。
方法:
在phpMyAdmin的目錄下,找到根目錄的config.inc.php文件,
打開config.inc.php文件,查找$cfg['UploadDir'],這個參數(shù)就是設(shè)定導(dǎo)入文件存放的目錄,這里把值設(shè)定為:ImportSQLFile。
在phpMyAdmin目錄下,建立以ImportSQLFile命名的文件夾,
把我們需要導(dǎo)入的數(shù)據(jù)文件,放到ImportSQLFile文件夾下面,非常簡單,
登入phpMyAdmin,選擇需要導(dǎo)入的數(shù)據(jù),點擊導(dǎo)航條上面的“導(dǎo)入”按鈕,
選中“從網(wǎng)站服務(wù)器上傳文件夾ImportSQLFile/中選擇:”選項,并需要導(dǎo)入的數(shù)據(jù)文件,
最后點擊“執(zhí)行”,即可導(dǎo)入成功。
注意事項
如果在config.inc.php文件,沒有找到$cfg['UploadDir'],可以自己在文件中添加上去即可。
如果你的數(shù)據(jù)庫是mysql的話,你可以用phpmyadmin訪問數(shù)據(jù)庫,然后點擊你的數(shù)據(jù)庫的名字,進(jìn)去后,有一個導(dǎo)出,你點擊那個跟著做,就可以導(dǎo)出了。
php導(dǎo)出大量數(shù)據(jù)到Excel,可以通過生成多個Excel文件,然后壓縮成壓縮包解決。
方案是:假如我們數(shù)據(jù)庫有10w條數(shù)據(jù),每2000條數(shù)據(jù)生成一個Excel文件,這樣每次只要從數(shù)據(jù)庫里查詢出2000條數(shù)據(jù)即可,一定要分頁去查詢。
原因:主要是數(shù)據(jù)庫性能和寫文件性能。分頁查詢可以解決數(shù)據(jù)庫壓力的問題, 生成多個文件可以解決單個文件太大,后期維護(hù)Excel文件的問題。
要注意的:
1. 在導(dǎo)出邏輯文件開頭,一定要聲明 set_time_limit(0) ,防止腳本超時;
2. 每個文件生成后,適當(dāng)?shù)膕leep一下,讓程序休息一下下;
3. 因為一次導(dǎo)出最后要將生成的多個Excel文件打包成一個壓縮包,所以要刪除掉生成的Excel文件,節(jié)省服務(wù)器存儲空間;
下面是我實際工作中,寫的一個php導(dǎo)出大量數(shù)據(jù)到Excel的代碼,你可以參考一下:
1、首先我們準(zhǔn)備一個含有數(shù)據(jù)的Excel表格,表頭和數(shù)據(jù)表中的表字段相對應(yīng)。
2、在ThinkPHP中引入PHPExcel類庫。
3、然后我們編寫導(dǎo)入的PHP代碼。
4、然后我們編寫導(dǎo)出的PHP代碼。
5、然后我們進(jìn)行導(dǎo)出測試發(fā)現(xiàn)可以導(dǎo)出即可。