亲测有效,三万条数据秒秒钟导出
先进行数据表插入数据
ini_set('memory_limit','1024M'); //设置程序运行的内存 ini_set('max_execution_time',0); //设置程序的执行时间,0为无上限 ob_end_clean(); //清除内存 ob_start(); $in = 0; for($i=2880;$i<=30000; $i++) { $data = ['uname'=>'uname:'.$i, 'aname'=>'账号:'.$i, 'pwd'=>'111'.$i]; $r = DB::table('enroll_activity_admin')->insert($data); if($in==1000){ //每次写入1000条数据清除内存 $in=0; ob_flush();//清除内存 } $in++; } ob_end_clean();die;
在进行导出数据
$fileName = '酒店'; $headArr = ['姓名', '账号', '密码']; //表头,名称可自定义 $data = Db::table('enroll_activity_admin')->where('is_del','0')->field('uname,aname,pwd')->select(); ini_set('memory_limit','1024M'); //设置程序运行的内存 ini_set('max_execution_time',0); //设置程序的执行时间,0为无上限 ob_end_clean(); //清除内存 ob_start(); header("Content-Type: text/csv"); header("Content-Disposition:filename=".$fileName.'.csv'); $fp=fopen('php://output','w'); fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF)); fputcsv($fp,$headArr); $index = 0; foreach ($data as $item) { if($index==1000){ //每次写入1000条数据清除内存 $index=0; ob_flush();//清除内存 flush(); } $index++; fputcsv($fp,$item); } ob_flush(); flush(); ob_end_clean();