Php 致命错误:允许的内存大小134217728字节已用尽(尝试分配1336933字节)

Php 致命错误:允许的内存大小134217728字节已用尽(尝试分配1336933字节),php,Php,我正在制作一个脚本,读取一个.txt文件,并将该文件中每一行的数据放入数据库。但问题是文件大小是7.5mb。php不允许这种文件大小 我还写到“ini_集('memory_limit','-1');”是不推荐的,所以我想知道如何解决这个问题 我的脚本: $file = fopen("./ftp_imports/ingram/ingram_fees.txt", "r"); $first_row = fgets($file); $column = explode(",", $first_row);

我正在制作一个脚本,读取一个.txt文件,并将该文件中每一行的数据放入数据库。但问题是文件大小是7.5mb。php不允许这种文件大小

我还写到“ini_集('memory_limit','-1');”是不推荐的,所以我想知道如何解决这个问题

我的脚本:

$file = fopen("./ftp_imports/ingram/ingram_fees.txt", "r");
$first_row = fgets($file);
$column = explode(",", $first_row);
$columns = count($column);

while ($row = fgets($file)) {
    $value = explode(",", $row);
    $i = 0;
    try {
        // Add a SQL-query.
        $i2 = 0;
        $sql = "INSERT INTO ingram_fees (";
        while ($i2 <= ($columns - 1)) {
            if ($i2 < ($columns - 1)) {
                $sql .= $column[$i2].",";
            } else {
                $sql .= $column[$i2];
            }
            $i++;
        }
        $sql .= ") VALUES (";
        $i2 = 0;
        while ($i2 <= ($columns - 1)) {
            if ($i2 < ($columns - 1)) {
                $sql .= ":".$column[$i2].",";
            } else {
                $sql .= ":".$column[$i2];
            }
        }
        $sql .= ")";
        $stmt = $db->prepare($sql);
        $sql_array = array();
        $i2 = 0;
        while ($i2 <= ($columns - 1)) {
            $key = ":".$column[$i2];
            $sql_array[$key] = $value[$i];
        }
        $stmt->execute($sql_values);
    } catch (PDOException $e) {
        echo $e->getMessage();
    }
}
$file=fopen(“./ftp_imports/ingram/ingram_fees.txt”,“r”);
$first_row=fgets($file);
$column=分解(“,”,$first_行);
$columns=计数($column);
而($row=fgets($file)){
$value=分解(“,”,$row);
$i=0;
试一试{
//添加SQL查询。
$i2=0;
$sql=“插入ingram_费用(”;
而($i2 getMessage();
}
}
也许我的代码有点凌乱,那是因为我是php:p的初学者

有人能给我举个例子来解决这个问题吗


谢谢

尝试在php.ini文件
max_execution_time=1800
memory_limit=512M
中进行更改。保存它并重新启动apache服务器您的文件有多大
ingram_fees.txt
?也许您的代码需要优化以获得更好的性能。正如我看到的,您只需将CSV数据导入MySQL表中。已经有很多sol你可以在SO上找到:我试过Nidhi说的话,但在加载5分钟后,它给了我同样的错误。@CodeBrauer该文件包含152.000行文本。