4

我在 CodeIgniter 工作。我想要做的是读取 Excel 文件并保存到数据库。要读取 Excel 文件,我正在使用这个库。上传后,在读取 Excel 文件时,我收到此错误:

致命错误:第 430 行 /home/webscwi1/public_html/projects/OnlineExam/application/libraries/excel_reader.php 中允许的内存大小为 134217728 字节已用尽(尝试分配 71 字节)

无论如何,我可以将内存大小从 12Mb 更改为 512Mb,但我仍然遇到同样的错误。我不知道确切的错误是什么,我想知道这是服务器错误还是代码问题。

附加信息:如果我上传 15 行的文件,它工作正常,但如果我在 Excel 中上传 90 行,我会收到此错误:

 $this->load->library('excel_reader');
 $this->excel_reader->read('question/'.$filename);
 $worksheet = $this->excel_reader->worksheets[0];

谢谢大家。

4

3 回答 3

9

您应该增加内存限制:

  • 编辑你的 php.ini 文件

    memory_limit = 512M

或者

  • 包括脚本顶部的这一行

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

您还应该检查这些行是否在您的 .htaccess 中:

php_value memory_limit <value>
php_value upload_max_filesize <value>

它们的值会覆盖 php 配置。所以他们应该反映你的需求,或者干脆被删除。

于 2013-02-05T11:02:18.367 回答
1

您应该在文件NameOfProject/.htaccess上添加属性 php_value

<IfModule mod_rewrite.c> php_value memory_limit 256M </IfModule>

于 2017-10-02T14:10:31.623 回答
0

这个内存溢出可以是最后一次查询的自动保存,你可以这样$this->db->save_queries = false;或者在文件config/database.php中更改为'save_queries' => FALSE,

于 2019-06-12T18:59:24.233 回答