由于数据量大,导致内部服务器错误


Internal server error because of the mass data?

我有一个excel表,里面有成千上万的数据。然后我建立了一个mysql数据库,并制作了一个在excel表上具有相同字段的表。但当我使用Phpmyadmin或PHPExcel方法将数据插入数据库时,大约5分钟,它总是显示500内部服务器错误。出现这种情况的原因是什么?数据是海量的吗?或者其他什么。我的服务器是Apache+PHP 5.4n+mysql 5.5.40(当然,我还更改了PHP上的max_exction_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索引,用于"替换"作品。也许你不需要更换,只是插入而已,忘记了这一行。