7

非常に大きな CSV ファイル (150 MB) があります。それを MySQL にインポートする最良の方法は何ですか? MySQL テーブルに挿入する前に、PHP で何らかの操作を行う必要があります。

4

2 に答える 2

6

MySQLのLOADDATAINFILEを見ることができます。

データを最初にPHPに読み込むのではなく、データがMySQLに読み込まれると、操作を実行できる場合があります。まず、LOAD DATA INFILEを使用して生データを一時テーブルに格納し、次に次のようなステートメントを使用してデータをターゲットテーブルに変換します。

INSERT INTO targettable (x, y, z)
SELECT foo(x), bar(y), z
FROM temptable
于 2010-09-23T07:33:10.653 に答える
3

fopen で開き、fgetcsv を使用して各行を配列に読み込みます。疑似phpは次のとおりです。

mysql_connect( //connect to db);

$filehandle = fopen("/path/to/file.csv", "r");
while (($data = fgetcsv($filehandle, 1000, ",")) !== FALSE) {
    // $data is an array
    // do your parsing here and insert into table
}

fclose($filehandle)
于 2010-09-23T07:38:48.083 に答える