使用PHP将大文件导入到数据库中..
浏览:4611次 出处信息
朋友需要将一个有170w行的txt文件.按行把数据导入到数据库中..
所以我帮他写了一下 马克在这里 万一也有人用的着:)
| 以下是代码片段: header ( "Content-type: text/html;charset=utf-8" ); set_time_limit(0); include(’Database.class.php’); $db = new Database(’127.0.0.1’, ’root’, ’root’, ’test’); //数据库 $fp = fopen(’171w.txt’, ’r’); //文件 $i=1; //开始行数 $array = array(); //用来存放从XXX-XXX行的数据的数组 //回调函数 function callback($now) { global $db, $array, $i, $fp; if(empty($array)) { //为了节省资源..我们只生成一次数组 while (!feof($fp)) { if($i == $now) { //循环到需要读取的行数时 for($j=$i;$j<=$i+999;$j++) { //读取下面的1000行并存储到数组中 $array[$j] = stream_get_line($fp, 1000000, "\n"); } break; } stream_get_line($fp, 1000000, "\n"); //实践证明 stream_get_line 比 fgets 快很多.. $i++; } } $db->insert("INSERT INTO test(name) VALUES(’{$array[$now]}’)"); //插入到数据库中 } include(’SkiyoProcess.class.php’); $sp = new SkiyoProcess(2, 1000, 171000); //间隔为2秒 每次插入1000条数据 一共171000行数据 $sp->process(’callback’); |
需要的库 一起打包下载 没有提供那个文件 太大鸟..
建议继续学习:
- 高效的大文件拷贝 (阅读:4086)
- Linux 找出大文件汇总 (阅读:3897)
- c/c++访问超过2G的文件 (阅读:3274)
- 误删大文件的一个可能解救办法 (阅读:2488)
- centos查找大文件 (阅读:2067)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
文章信息
- 作者:Jessica 来源: Skiyo
- 标签: 大文件 导库
- 发布时间:2010-06-22 13:11:38
近3天十大热文
-
[780] WordPress插件开发 -- 在插件使用 -
[60] cookie窃取和session劫持 -
[60] Java将Object对象转换为String -
[58] 学习:一个并发的Cache -
[57] 你必须了解的Session的本质 -
[54] 再谈“我是怎么招聘程序员的” -
[52] Linux如何统计进程的CPU利用率 -
[50] 解读iPhone平台的一些优秀设计思路 -
[49] 我对技术方向的一些反思 -
[49] 最萌域名.cat背后的故事:加泰与西班牙政府
