2016-07-28 39 views
1

私は非常に大きな.csvファイルを持っています。ファイルは1000行です。私のデータベースにインポート中に時間がかかり過ぎると、タイムアウトのようなエラーが表示されることがあります。大きな.CSVファイルで行を分割してデータベースにインポートする方法

これを避けるには、最初の100行を読み込んでデータベースにインポートするなどします。 PHPのやり方は?簡単な方法はありますか?

+1

ための助けとなるだろう、私は 'LOAD DATAのINFILE'クエリを使用して10万人以上の行でCSVをインポートしました。かなり速いです。しかし、PHPがタイムアウトした場合は、 'max_execution_time'を増やしてください –

答えて

1

おそらくMySQL LOAD DATAの構文を使用することを検討する必要があります。 SQLクエリから、テーブルのCSVからデータをインポートできます。パラメータの区切り文字、行末などを指定することができます。 PHPでファイルを解析してINSERTを生成するよりもはるかに高速です。 LOAD DATA INFILE(ファイルはmysqlデーモンで読める必要があります)とLOAD DATA LOCAL INFILE(ファイルはmysqlクライアントから読める必要があります)の2つのオプションがあります。

0
while (($data = fgetcsv($handle,1000, ",")) != FALSE) 
       { 
        $num = count($data); 
        for ($c=0; $c < $num; $c++) 
        { 
         $col[$c] = $data[$c]; 
        } 
    } 

このコードは、あなた

関連する問題