我的这个功能的原因是参考dedecms生成html页面的原理,只是dedecms使用的是js跳转而我使用的是refresh进行跳转,效果是一样的,下面我们一起来看一个php实现批量导入数据的方法.
因为我有1000W数据一次导入数据库肯定是不可行了,所以我就导致了每一次导入50条或更多数据,然后下次再刷新一次这样就可以解决这个问题了,代码如下:
- <?php
- set_time_limit(0);
-
-
- $s = isset( $_GET['s'] )?$_GET['s']:0;
- $e = isset( $_GET['e'])?$_GET['e']:50;
- $count =85000;
-
- if( $s < $count )
- {
- $sql = "select * from bac_info where isget =0 order by id desc limit $s,$e ";
- $query = mysql_query( $sql );
- while( $rs = mysql_fetch_array( $query ) )
- {
- $id = $rs['id'];
- $sms = $rs['sms'];
- $typeid = $rs['typeid'];
- $isget = $rs['isget'];
- $sql = "insert into bac_info_bak (id,sms,typeid,isget) values('$id','$sms','$typeid','$isget')";
- mysql_query( $sql ) ;
- echo $sql;
-
- $sqlu = "update bac_info set isget=1 where id =".$rs['id'];
- mysql_query( $sqlu );
- }
- echo '<meta http-equiv="refresh" content="0;url=rand.php?s='.($s+50).'&e=50">正在处理数据,当前为'.$s.'条......';
- }
- else
- {
- echo '完成所有数据处理 <a href=rand.php>再随机排序一次</a>';
- }
- ?>
|