我的这个功能的原因是参考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; //exit; $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 . '条......'; } //开源代码phprm.com else { echo '完成所有数据处理 <a href=rand.php>再随机排序一次</a>'; }