PHP 致命错误内存不足

2023-12-13

我在名为 RebuildSummary() 的函数中调用以下两个函数

  1. 创建摘要()
  2. 从文件插入数据()

1.create_summary函数

create_summary 函数从数据库中获取活动数据,并使用 for 每个循环遍历活动,并将数据插入到以下文本文件中,如下所示:

z文件名71801404123.txt

A|201309|R|C|2|014000956|014000956|2200|201211|M|3118.72|35215.12|1639.96|40749.29|46183.13|44653.83|1529.3|||423|9999|EVERGREEN IMPLEMENT INC 
A|201309|R|C|2|014000956|014000956|2201|201211|M|0|13.86|0|15.22|13.86|15.22|-1.36|||423|9999|EVERGREEN IMPLEMENT INC 

2.从文件中插入数据函数

insertdatafromfile 函数将读取同一文本文件 [zfilename71801404123.txt] 的内容,并使用命令 LOAD DATA 将它们插入到汇总表中。

Code

function RebuildSummary() {
    $random = date('dmyhis');
    $zfilename = "zfilename".$random;
    create_summary($zfilename);
    insertdata($zfilename);
}

function create_summary($zfilename)
{
    $activities // data from DB
    $filepath = $_SERVER['DOCUMENT_ROOT']."\z".$zfilename.".txt";
    foreach ($activities as $activity) {
        $sql_summary = "SELECT A.AcctDb as AcctDb, '" . $default->DeftReportPeriod . "' as SumReportPer, '" . $default->DeftReportBase . "' as SumReportBase, '" . $default->DeftPeriodBasis . "' as SumPeriodBasis, '" . $default->DeftBasisAdj . "' as SumBasisAdj, '" . $AcctNo . "' as AcctNo,'" . $AcctTaxId . "' as AcctTaxId, '" . $RevLoc . "' as SumRevLoc, '" . $YTDStart . "' as SumYtdStart, '" . $CurrFreq . "' as SumCurrFreq, '" . $Curr . "' as SumCurrAmt, '" . $Ytd . "' as SumYtdAmt, '" . $Lastcurr . "' as SumLastCurr, '" . $LastYTD . "' as SumLastYtd, '" . $Last12 . "' as SumLast12, '" . $Prior12 . "' as SumPrior12, '" . $Last12diff . "' as SumLast12Diff, A.AcctDateOpen as SumDateOpen, A.AcctDateClosed as SumDateClosed, A.GroupCode as SumGroupCode, A.AcctHomeLoc as SumHomeLoc, A.AcctBusName as SumBusName, A.ClassCode as SumClassCode, '" . $Currdiff . "' asSumCurrDiff, '" . $Ytddiff . "' as SumYtdDiff, '" . $Mon['0'] . "' as SumMon01, '" . $Mon['1'] . "' as SumMon02, '" . $Mon['2'] . "' as SumMon03, '" . $Mon['3'] . "' as SumMon04, '" . $Mon['4'] . "' as SumMon05, '" . $Mon['5'] . "' as SumMon06, '" . $Mon['6'] . "' as SumMon07, '" . $Mon['7'] . "' as SumMon08, '" . $Mon['8'] . "' as SumMon09, '" . $Mon['9'] . "' as SumMon10, '" . $Mon['10'] . "' as SumMon11, '" . $Mon['11'] . "' as SumMon12,'" . $Amt['0'] . "' as SumAmt01, '" . $Amt['1'] . "' as SumAmt02, '" . $Amt['2'] . "' as SumAmt03,'" . $Amt['3'] . "' as SumAmt04, '" . $Amt['4'] . "' as SumAmt05, '" . $Amt['5'] . "' as SumAmt06, '" . $Amt['6'] . "' as SumAmt07, '" . $Amt['7'] . "' as SumAmt08, '" . $Amt['8'] . "' as SumAmt09, '" . $Amt['9'] . "' as SumAmt10, '" . $Amt['10'] . "' as SumAmt11, '" . $Amt['11'] . "' as SumAmt12 FROM accounts A WHERE A.AcctDb = '" . $AcctDb . "' and A.AcctTaxId='" . $AcctTaxId . "' ;";
        $exist_activity1 = $this->db->query($sql_summary);
        $activities1 = $exist_activity1->result_array();

        $flag_index = 0;
        foreach ($activities1[0] as $key => $value) {
            if ($flag_index == 0) {
            }
            $result .= $value . "|";
            $flag_index = 1;
        }

        $j++;
        $result = rtrim($result, "|");
        $handle = fopen($filepath, 'a') or die('Cannot open file:  ' . $filepath);
        fwrite($handle, $result);
        $new_data = "\n";
        fwrite($handle, $new_data);
        $result = "";
    }
}


function insertdatafromfile($zfilename) {
    ini_set('memory_limit', '-1');
    $ext = mysql_real_escape_string("\n");
    $filepath = "z".$zfilename.".txt";
    $sqlstatement1 = "LOAD DATA INFILE " . "'" . $filepath . "'" . " 
    INTO TABLE summary
    FIELDS TERMINATED BY '|'
    LINES TERMINATED BY " . "'" . $ext . "'" . " 
    (AcctDb, SumReportPer, SumReportBase, SumPeriodBasis, SumBasisAdj, AcctNo,AcctTaxId, SumRevLoc, SumYtdStart, SumCurrFreq, SumCurrAmt, SumYtdAmt, SumLastCurr, SumLastYtd, SumLast12, SumPrior12, SumLast12Diff, SumDateOpen, SumDateClosed, SumGroupCode, SumHomeLoc, SumBusName, SumClassCode, SumCurrDiff, SumYtdDiff, SumMon01, SumMon02, SumMon03, SumMon04, SumMon05, SumMon06, SumMon07, SumMon08, SumMon09, SumMon10, SumMon11, SumMon12, SumAmt01, SumAmt02, SumAmt03, SumAmt04, SumAmt05, SumAmt06, SumAmt07, SumAmt08, SumAmt09, SumAmt10, SumAmt11, SumAmt12)
";
    mysql_query($sqlstatement1);
    $filepath = $_SERVER['DOCUMENT_ROOT']."\z".$zfilename.".txt";
    unlink($filepath);
}

系统配置:

Processor: Intel(R) Xeon(TM) CPU 2.80Ghz, 2.79 Ghz (2 Processors)
Installed memory(RAM) : 6.00 GB
System Type: 64 bit Operating System
Server: Windows IIS 7

PHPINFO

max_input_time: 60000
max_file_uploads: 2048M
memory_limit: 20000M
post_max_size: 20000M
upload_max_filesize: 15000M

我的问题:

我在调用 RebuildSummary 函数时收到以下错误。

[17-Apr-2014 03:54:42 America/Los_Angeles] PHP Fatal error:  Out of memory (allocated 1517289472) (tried to allocate 64 bytes) in C:\HostingSpaces\wwwroot\system\database\drivers\mysql\mysql_result.php on line 162

我在服务器端有足够的内存,系统仍然如何显示此错误“内存不足”


1517289472 bytes ~= 1.4G所以你遇到了周围的障碍

您应该查看的第一件事是您正在设置memory_limit: 20000M这是20G。您的系统上只有 6G。 PHP 可能会感到困惑并默认为较低限制,或者您在 Windows 7 上运行的 php 版本可能存在硬限制。

或者您可能正在运行 32 位 Apache/PHP 进程,其硬性限制约为 2G,请参见以下内容:PHP/Apache 的内存上限

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 致命错误内存不足 的相关文章

随机推荐

  • Python-两个数字之和程序错误[重复]

    这个问题在这里已经有答案了 我刚刚开始学习 Python 编程 我编写了一个简单的程序来计算两个用户输入数字的总和 a b input enter first number input enter second number print s
  • Prometheus 和 Grafana - 有没有办法让用户使用机器?

    我一直在与 Prometheus 和 Grafana 合作 获取几个计算机实验室的状态和统计数据 有没有一种方法可以让我通过 Prometheus 登录计算机的用户并将其放到 Grafana 上 我会列出2个选项 第一个将 Pushgate
  • 从 3 个视图中创建 3D 对象

    I d like to calculate an 3D object out of the 3 views The principle is shown in following figure 每个视图都存储在二维矩阵中 其中二进制值表示对
  • 用 sum group by 计算平均成绩

    我必须显示每个用户的名字和姓氏 学习年份 年龄 平均成绩以及一般平均成绩 平均成绩 I 需要这样计算 Sum AverageGrade total number of grades userID FirstName LastName Bir
  • Rails 3:通过关联使用 has_many 进行多重选择

    我希望能够通过多项选择为一篇帖子选择多个类别 我有下一个模型 Post Category 和 PostCategory class Post lt ActiveRecord Base has many post categories has
  • 虚假外键约束失败

    我收到此错误消息 第 40 行出现错误 1217 23000 无法 删除或更新父行 a 外键约束失败 当我尝试删除表格时 DROP TABLE IF EXISTS area 定义如下 CREATE TABLE area area id ch
  • 如何通过匹配另一个数组来过滤R中的矩阵

    现在我在 R 中有一个矩阵 a matrix c A B B C 61 25 23 28 43 74 67 11 nrow 4 和另一个数组 b c B C D 如何过滤矩阵 a 以便它仅返回匹配项 即 matrix c B B C 25
  • Tomcat JDBC 连接在 Eclipse 中工作但不能独立运行

    我们正在经历升级数据库软件以及从 Tomcat 5 5 到 Tomcat 7 的过程 因此 我使用新的 JDBC 驱动程序 在本例中是推荐的 SQL Anywhere JDBC 4 0 驱动程序 它需要 ODBC 服务 我已经成功地让这一切
  • 如何获取每个应用程序的权限?如何在Android上以编程方式做到这一点?

    如何获取每个应用程序的权限详细信息 如何以编程方式做到这一点 我要显示 每个应用程序的应用程序权限详细信息 在文本视图上 但我尝试了但不行 你好 java import android app Activity import android
  • 在 Android 文件资源管理器中按文件类型过滤

    在我的应用程序中 我想让用户从文件资源管理器应用程序中选择文件 我已经能够通过使用以下代码 在 C Xamarin 中 来做到这一点 private void AddFile if IsFileExplorerAppInstalled To
  • 如何使用ajax在Django管理表格内联中读取/写入输入字段?

    我正在寻找使用 ajax 动态更新内联条目的方法 即 当用户从下拉框中选择一个项目时 可以用数据填充关联的输入字段 ajax 的views py 部分应该很简单 但对我来说有一个问题是如何在js中获取下拉框的名称 这些名称可以动态添加 以下
  • 如何在不同的 Spring 上下文之间共享 Spring bean?

    我们有一个使用 Spring BlazeDS 集成的应用程序 到目前为止 我们刚刚使用了 Spring 和 Flex 并且运行良好 我们现在还需要添加一些 Spring MVC 控制器 Spring BlazeDS 文档指出 执行此操作的方
  • 使用 C# 包装器从任务栏中删除应用程序?

    有没有办法为现有应用程序构建 C 包装器 以便我将其从任务栏中删除 更多信息 我有一个计时器应用程序 我想使用它 但没有使用 因为它很好 很糟糕 看https superuser com questions 92774 quickbooks
  • CSS 中的尾随行装饰标题

    我正在尝试创建带有一些精美装饰的标题标签 最终 我想达到这个目的 不过 我在文本后添加尾随线装饰时遇到问题 我最初的想法是有一个容器 然后在该容器中包含 h1 和包含该行的 span 标签 但我似乎不太能让该行与位于其上方的文本居中 我试过
  • 带底边框的文本框

    我希望有TextBox有底部边框 但绘制的图形为TextBox调整大小时会扭曲 损坏 因为Color Transparent 使用我找到的代码 我能够创建一个带下划线的文本框 具有透明顶部 左侧 右侧的绘制矩形 问题是当我调整表单 窗口的大
  • 从 html 文件解析图像 url

    我想搜索 html 文件 然后获取该页面上图像的 url 然后这个 url 应该被保存为一个字符串 仅此而已 问题是我真的不知道如何开始 我的应用程序当然知道图像所在页面的 url 我们以这个 url 为例 在此页面上 我需要大图像的 ur
  • 如何使用bash输入ssh密码? [复制]

    这个问题在这里已经有答案了 我每天都通过 ssh 连接到服务器 我经历了这个例程 IC001 Desktop user ssh email protected email protected s password Last login Tu
  • onConfigurationChanged 在 android 中任何时候都不会被调用

    我已经创建了示例程序来测试方向 如果纵向模式并且我以相反的方式倾斜手机 我希望我的示例应用程序反向纵向 在阅读了很多关于此的问题之后 认为我们需要使用 onConfigurationChanged Configuration newConf
  • 将 ModelEntity 悬停在 ARCamera 前面

    我试图让一个实体悬停在镜头前的同一位置 无论我如何移动设备 但我没有成功 我想我想围绕 y 用于横向移动 偏航 和 x 用于垂直平移 俯仰 旋转 我从 ARCamera 获取相机旋转 let distance Float 2 distanc
  • PHP 致命错误内存不足

    我在名为 RebuildSummary 的函数中调用以下两个函数 创建摘要 从文件插入数据 1 create summary函数 create summary 函数从数据库中获取活动数据 并使用 for 每个循环遍历活动 并将数据插入到以下