我有一个excel表,其中有数万个数据。 然后我构建一个mysql数据库并创建一个在excel表上具有相同字段的表。 但是当我使用Phpmyadmin或PHPExcel方式将数据插入数据库时,大约5分钟,它总是显示500内部服务器错误。 造成这种情况的原因是什么?数据是质量还是别的。 我的服务器是Apache + PHP 5.4n + mysql 5.5.40 (当然,我也改变了PHP和memory_limit上的max_excution_time)
答案 0 :(得分:0)
以CSV格式转换您的Excel并阅读/使用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索引来“替换”作品。也许你不需要替换但只是插入,忘了这一行。