这篇文章主要为大家详细介绍了PHP如何实现导入大量CSV数据功能,文中的示例代码讲解详细,对我们学习PHP有一定帮助,需要的可以参考一下
前言
网上有很多介绍大量上传数据的,感觉都是一个抄一个,这是自己写的处理方式,在一些项目中已经应用.
主要利用 yield 完成文件读取,这个重点看会了,其他基本就很简单.
代码部分
一. controller 写法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
|
二. yield 读取数据以及处理空行方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
|
结论
使用 yield 可以很大程度上减低服务器开销,压力在数据库方面。上限没有测试过,不过 1 万条数据是很轻松.
知识点补充
yield是php5.6版本才有的函数,作用是实现生成器,作用的在读取文件的时候,可以一行一行的读取
简单的说可以理解为 php版本的非缓冲查询,意思即是 把数据一行行 读取到php运行内存,并非一次性读取到php运行内存,众所周知,php有很多内置函数,可以帮助我们对数据进行加工操作,因为数据都在内存里面,所以能操作,但是php的运行内存是有极限,默认128M。
以下附上php 实现 yield 链接 mysql 几种方法:
方法一
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
方法二
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
方法三
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
到此这篇关于PHP实现导入大量CSV数据的示例代码的文章就介绍到这了,更多相关PHP导入CSV数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!