2012-07-11 23 views
6

私はcsvファイルを持っています。私は、Googleから見つけたように、端末からLOADファイルなどを使ってインポートしようとしましたが、うまくいきませんでした。それはインポートを行っていたが、私のテーブルはNULLセルの30 000行になった。phpMyAdminを使用して大きなcsvファイルをインポートします。

その後、私はphpMyAdminを試してみました。そこに私のcsvが大きすぎることが分かりました。私はCSVスプリッタを使って5で分割しました。最初のファイルのインポートを行いました。すべてがうまくいった。私は2番目のものをインポートしようとしたが、エラーが発生した。

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 35 bytes) in C:\xampp\phpMyAdmin\libraries\import\csv.php on line 370

または1064エラーが発生することがある。

なぜ、どのように解決できますか?ありがとうございました。

答えて

20

PHPのメモリ制限とスクリプト時間を長くすると、PHPサーバからmysql命令を実行することになります。

これはvarsのためにphp.iniファイルをチェックしてください:

memory_limit 
max_execution_time 

をしかし、いずれにせよ、私はmysqlクライアント(端末)を介してそれを行うだろう、MySQLのドキュメントをチェック

LOAD DATA LOCAL INFILE '/path/to/your/csv/file/csv_file.csv' INTO TABLE database_name.table_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; 

Mysql Documentation - Load Data Infile Syntax PHP Documentation - Ini core settings

+0

ありがとうございました。私はこれをやったことがありますが、それと同じ問題です。他のアイデア? – duracell

+0

あなたの設定は何ですか?私はmemory_limitとmax_execution_timeを意味します –

+1

128から私は1024に変わりました...そして30から60に。 – duracell

1

phpMyAdminを使用して大きなファイルをインポートしようとしたときにこの問題が発生し、バージョンでコマンドを使用できません私はこれを使用しています。これを解決するために私はthis CSV editorを使用し、ファイルをより小さなファイルに分割しました。それぞれのチャンクを別々にインポートしたときにうまくいきました。

関連する問題