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