我有一个大的txt文件(40mb),其中包含一些字符串,文件如下:
AN,Aixas|AN,Aixirivall|AN,Aixovall|AN,Andorra la Vella|AN,Ansalonga|AN,Anyos|AN,Arans|
我有一个键(两个字母)和一个值(城市),所以当我试图用这个函数在PHP中拆分它时,以及当我试图在数据库中插入数据时,我遇到了一个问题。
我在php中使用的函数是:
$file = explode("|", file_get_contents('city.txt'));
$city = explode(",", $file);
foreach ($city as $key => $value)
mysqli_query($mysqli, "INSERT INTO city(name_city, id_city) VALUES ('$key', '$value')");
出现错误:
[29-Apr-2016 14:33:09 Europe/Berlin] PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 32 bytes) in /home/mypath on line 6
我认为我的文件更大,需要处理,我如何解析数据并将其插入数据库?
我建议您使用mysql加载数据infile:
LOAD DATA LOCAL INFILE '".$file_path."' INTO TABLE your_table
FIELDS TERMINATED BY '|'
LINES TERMINATED BY ''n'
IGNORE n LINES";
其中,$file_path
是文本文件的路径,your_table
是表名,n
是从文本文件开始要忽略的行数。