如何在数据库中解析和插入数据


How to parse and insert data in a database

我有一个大的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是从文本文件开始要忽略的行数。