从电子表格中读取大量记录时如何解决内存错误?

时间:2015-03-08 22:36:46

标签: php

我还没有找到解决方法。我使用memory_limit来删除错误,但它仍然没有将所有记录插入数据库。我有20K的记录。

这是我得到的错误

  

致命错误:第1367行的C:\ xampp \ htdoc \ a \ b \ excel_reader.php中允许的内存大小为134217728个字节(试图分配24个字节)

关于如何修复它的任何想法?

以下是代码:

ini_set('memory_limit', '512M');

$format_file = $_POST['fileexcel'];
$format_file = $_FILES['fileexcel']['tmp_name'];

if (strlen($format_file)<1){
echo "empty file";
exit();
}
$data = new Spreadsheet_Excel_Reader($format_file);
$result = $data->rowcount($sheet_index=0);
for ($i=2; $i<=$result; $i++){

    $data1 = $data->val($i,1);
    $data2 = $data->val($i,5);
    $data3 = $data->val($i,10);

    $q = mysql_query("INSERT INTO t (k,m,n) VALUES ('$data1','$data2','$data3')") or die(mysql_error());

    if ($result) {

        echo "success";

    }
    else {
        echo "failed";
    }


}

1 个答案:

答案 0 :(得分:1)

PHP具有此类配置选项的内置默认值。

如果是memory-limit指令,则为128MB。所以你 使用它。