我必须从xls文件中读取大约5000行,最多6列。我使用的是PHP >= 5.3。我将使用PHPExcel来完成这项任务。我还没有试过,但我认为它可以处理(如果你有其他选择,欢迎他们)。问题是,每次读取一行时,我都需要查询数据库以验证该特定行是否存在,如果存在,则覆盖它,如果不存在,则添加它。我认为这会花费很多时间,而且PHP只会简单地超时(我不能修改超时变量,因为它是共享服务器)。你能帮我弄一下这个吗?感谢您的帮助
发布于 2015-05-28 22:30:38
因为您使用的是MySQL,所以您所要做的就是插入数据,根本不用担心有行在那里。原因和方法如下:
UNIQUE约束。INSERT INTO ... ON DUPLICATE KEY UPDATE语法扩展了标准。这让你只需插入数据,如果有重复的行,你可以用新数据更新它。ON DUPLICATE KEY UPDATE处理重复项)。这将使您花费硬盘驱动器的1个I/O来保存100条记录。这样做,您可以在几秒钟内完成整个过程,这使您不必担心性能或超时。发布于 2015-05-28 22:18:31
首先通过exec运行这个进程,超时无关紧要。
第二步,在读取excel文件前选择所有行。选择not at one query,例如一次读取2000行,然后将其收集到数组中。
第三,使用xlsx格式和chunkReader,这允许读取不是整个文件。不是100%保证,但我也这么做了。
https://stackoverflow.com/questions/30508785
复制相似问题