我有一个excel表格,里面有几万条数据。 然后我建立一个mysql数据库并在excel表上创建一个具有相同字段的表。 但是当我使用Phpmyadmin或PHPExcel方式将数据插入数据库时,大约5分钟,它总是显示500内部服务器错误。 造成这种情况的原因是什么?是数据海量吗?还是别的原因。 我的服务器是Apache+PHP 5.4n+mysql 5.5.40 (当然,我还更改了PHP上的max_excution_time和memory_limit)
最佳答案
将 Excel 转换为 CSV 格式并读取/使用 LOAD DATA LOCAL INFILE
例如,我复制/过去我自己的代码,但使其适应您的需求
$dataload = 'LOAD DATA LOCAL INFILE "'.$filename.'"
REPLACE
INTO TABLE '.$this->csvTable.' CHARACTER SET "utf8"
FIELDS TERMINATED BY "\t"
IGNORE 1 LINES
';
$result = (bool)$this->db->query($dataload);
其中 $filename 是 CSV 的本地路径(您可以使用 dirname(FILE) 来获取它)
这个 SQL 命令非常快(添加/更新所有 CSV 只需 1 或 2 秒)
阅读文档,但是当然您需要在用户表上有一个 uniq 索引才能进行“替换”工作。也许您不需要替换,只需插入即可,忘记了这一行。
关于php - 海量数据导致服务器内部错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36314046/