【发布时间】:2013-06-15 17:52:30
【问题描述】:
我正在将旧数据库 php 数组处理为新数据库。数据 .php 文件总大小约为 220 MB。
我已经在脚本中插入了这些行,以便它可以正常运行:
ini_set("memory_limit", "-1");
set_time_limit(0);
这是我包含产品的方式:
// The exports made by PHPMYADMIN, exported as PHP-Array
require_once 'export/tx_ttproductsv2_products.php';
require_once 'export/tx_ttproductsv2_keyword.php';
require_once 'export/tx_ttproductsv2_keywords_in_products.php';
require_once 'export/tx_ttproductsv2_typebook.php';
require_once 'export/tx_ttproductsv2_typegospel7.php';
require_once 'export/tx_ttproductsv2_typemedia.php';
当脚本试图要求它们时,我收到此错误:
PHP致命错误:内存不足(分配880541696)(试图分配469762048字节)在......
我有一个在 x64 Win 7 SP1 上运行的本地 EasyPHP 安装。我有 6 GB 内存,Intel i5。
如何让 PHP 运行整个脚本而不会出现内存错误?
【问题讨论】:
-
尝试增加
upload_max_filesize&post_max_size? -
@KhawerZeshan,我不上传东西?还是我看错了?
-
PHPMYADMIN 导出的文件是文件还是什么?
-
您应该更改 php.ini 文件中的 memory_limit。但是,您已经准备好使用 839.75 兆字节。太多了……如果数据库只有 220MB 大,这意味着您的脚本会产生大量开销。尝试一次处理 1 个文件,而不是一次处理所有文件
-
@Mathlight 某些配置不允许您使用 ini_set 覆盖 php.ini 设置。我不熟悉easyPHP或Windows,所以我不确定我的答案是否有效。但是,您仍在使用大量内存,因此不要一次解析所有文件,而是逐个解析它们
标签: php apache memory limit easyphp