私は非常に大きな.csvファイルを持っています。ファイルは1000行です。私のデータベースにインポート中に時間がかかり過ぎると、タイムアウトのようなエラーが表示されることがあります。大きな.CSVファイルで行を分割してデータベースにインポートする方法
これを避けるには、最初の100行を読み込んでデータベースにインポートするなどします。 PHPのやり方は?簡単な方法はありますか?
私は非常に大きな.csvファイルを持っています。ファイルは1000行です。私のデータベースにインポート中に時間がかかり過ぎると、タイムアウトのようなエラーが表示されることがあります。大きな.CSVファイルで行を分割してデータベースにインポートする方法
これを避けるには、最初の100行を読み込んでデータベースにインポートするなどします。 PHPのやり方は?簡単な方法はありますか?
おそらくMySQL LOAD DATAの構文を使用することを検討する必要があります。 SQLクエリから、テーブルのCSVからデータをインポートできます。パラメータの区切り文字、行末などを指定することができます。 PHPでファイルを解析してINSERTを生成するよりもはるかに高速です。 LOAD DATA INFILE(ファイルはmysqlデーモンで読める必要があります)とLOAD DATA LOCAL INFILE(ファイルはmysqlクライアントから読める必要があります)の2つのオプションがあります。
while (($data = fgetcsv($handle,1000, ",")) != FALSE)
{
$num = count($data);
for ($c=0; $c < $num; $c++)
{
$col[$c] = $data[$c];
}
}
このコードは、あなた
ための助けとなるだろう、私は 'LOAD DATAのINFILE'クエリを使用して10万人以上の行でCSVをインポートしました。かなり速いです。しかし、PHPがタイムアウトした場合は、 'max_execution_time'を増やしてください –