百萬級的數(shù)據(jù)庫表,好像也不用這么麻煩吧?
為臨潼等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及臨潼網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站建設、網(wǎng)站設計、臨潼網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
直接寫一個php,遞歸執(zhí)行就差不多了,但是php.ini中,將memory_limit設置大一些,再將mysql.connect_timeout值加大些,max_execution_time設置的值大一些。
如果不想設置這些,在程序中使用 ini_set() 函數(shù)也是可以的,一開始先遞歸小一些做十幾條,測試通過了再遞歸所有數(shù)據(jù),然后等就行了。
在等待的過程中,你可以用phpmyadmin等工具查看實時進度,如果發(fā)現(xiàn)問題,重啟web服務器進程,就中止運行了,然后再試。
在使用PhpMyAdmin的時候經(jīng)常用到數(shù)據(jù)的導入和導出(Export/Import),但是在導入大數(shù)據(jù)的時候由于php上傳文件的限制和腳本響應時間的限制,導致phpMyAdmin無法導入大數(shù)據(jù)。很多時候都是由于文件過大,從本地瀏覽上傳導入,容易中斷失敗,有沒有更好的方法呢?
方法:
在phpMyAdmin的目錄下,找到根目錄的config.inc.php文件,
打開config.inc.php文件,查找$cfg['UploadDir'],這個參數(shù)就是設定導入文件存放的目錄,這里把值設定為:ImportSQLFile。
在phpMyAdmin目錄下,建立以ImportSQLFile命名的文件夾,
把我們需要導入的數(shù)據(jù)文件,放到ImportSQLFile文件夾下面,非常簡單,
登入phpMyAdmin,選擇需要導入的數(shù)據(jù),點擊導航條上面的“導入”按鈕,
選中“從網(wǎng)站服務器上傳文件夾ImportSQLFile/中選擇:”選項,并需要導入的數(shù)據(jù)文件,
最后點擊“執(zhí)行”,即可導入成功。
注意事項
如果在config.inc.php文件,沒有找到$cfg['UploadDir'],可以自己在文件中添加上去即可。
先設定一個變量為0,比如:$i=0;
在使用while循環(huán)讀取數(shù)據(jù),每循環(huán)一次,給$i加一,比如:$i++;
接著判斷是不是循環(huán)到了每100條的整數(shù),是的話,輸出一個p標簽:
如下:
p
?php
$sql=你的sql語句
$rel = @mysql_query($sql);
$i=0;
while($rs = @mysql_feach_array($rel)){
echo 你的數(shù)據(jù);
$i++;
echo $i % 100 == 0 ? '/pp' :null;
}
?
/p
使用for循環(huán)
定義變量$i,配合select * from table where ………… limit $i,100
這樣就可以了
我之前就做過,但因為換了工作,代碼在之前的公司,否則就可以讓你參考下了
另外,我覺得100太少了,最起碼得改成1000才行
php導出數(shù)據(jù)有兩種方式,一種是通過封裝好的phpexcel導出,一種是通過table導出數(shù)據(jù),指定header就可以導出數(shù)據(jù)。
上面是導出到excel中的方法,當然你也可以導出數(shù)據(jù)直接到數(shù)據(jù)庫,或者你也可以到處數(shù)據(jù)到文件中,這個主要看你導出數(shù)據(jù)的格式要求。
看你截圖顯示的是數(shù)組格式,可以通過循環(huán)遍歷然后導入到響應的文件中。