我有一个包含一些字符串的大文本文件(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
我认为我的文件处理起来比较大,我如何解析并在数据库中插入数据?
答案 0 :(得分:0)
我建议你使用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
是您希望从文本文件开头忽略的行数。