-3

重複の可能性:
CSVファイルをMySQLに直接インポートする

さまざまな方法でphpのcsvファイルまたは巨大なファイルサイズ(250MB以上)のコンマ区切りファイルからデータを読み取ろうとしました(これらの1つは以下のとおりです)ので、必要なデータを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

私はあなたの欲求を満たすためにそれを変更するこのコードを提供します

$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 に答える