-3

可能重复:
将 CSV 文件直接导入 MySQL

我尝试使用不同的方法(其中一种方法如下)从 csv 文件或逗号分隔的大文件大小(超过 250MB)的文件中读取数据,因此我可以将所需的数据从它插入到 mysql 数据库但程序每次在完成文件读取之前崩溃。我还尝试增加 php.ini 中的内存限制。面临以下错误:-

1.----------------------------------------------------------

memory_limit = 128M 致命错误:第 19 行 C:\wamp\www\site\files\plugin\agoda\agoda.plugin.php 中允许的内存大小为 134217728 字节已用尽(尝试分配 63 字节)

2.----------------------------------------------------------

memory_limit = 1000M 致命错误:第 19 行 C:\wamp\www\site\files\plugin\agoda\agoda.plugin.php 中允许的内存大小为 1048576000 字节已用尽(试图分配 1299 字节)

3.----------------------------------------------------------

memory_limit = 2000M

无效的

我需要一种在 php 中读取此类文件而不会导致程序崩溃的方法。

4

1 回答 1

0

I provide this code modify it to meet your desire

$source = fopen('zipcode.csv', 'r') or die("Problem open file");
    while (($data = fgetcsv($source, 1000, ",")) !== FALSE)
    {
        $zip = $data[0];
        $city = $data[1];
        $state = $data[2];
        $latitude = $data[3];
        $longitude = $data[4];
        $timezone = $data[5];
        $dst = $data[6];

        mysql_query("INSERT INTO `latlong` (`zip`,`city`,`state`,`latitude`,`longitude`,`timezone`,`dst`) VALUES (".$zip.",'".$city."','".$state."','".$latitude."','".$longitude."',".$timezone.",".$dst.")");

    }
    fclose($source);
于 2012-11-05T10:53:29.210 回答