【问题标题】:How to parse and insert data in a database [duplicate]如何在数据库中解析和插入数据[重复]
【发布时间】:2016-08-24 15:27:31
【问题描述】:

我有一个包含一些字符串的大 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

我认为我的文件要处理的更大,我如何在我的数据库中解析和插入我的数据?

【问题讨论】:

标签: php mysql


【解决方案1】:

我会推荐你​​使用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 是您希望从文本文件开头忽略的行数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多